GitLabへの公開鍵の登録

はじめに_

先にGitLabの管理者(先端情報システム工学研究室の場合は後藤)にアカウントを作成してもらうこと。

公開鍵の登録_

GitLabへのお誘いメールが届いてから、GitLabへ公開鍵を登録するまでの流れの説明。Linux環境およびWindows環境での秘密鍵と公開鍵の作成は後ほど別記する。

お誘いメールに書いてあるGitLabのURLをクリックし、同じくお誘いメールに記載されているユーザ名とパスワードでログインすると以下の画面が表示される。この画面では、ログインパスワードを変更する。

その後、再びログイン画面に戻るので新しく設定したパスワードでログインすると以下の画面が表示される。

検索フォームの横に並んでいるアイコン(icon)群から「Profile setting」を選択し、クリックする。すると以下の画面に切り替わる。

並んでいるタブ(tab)の中から「SSH Keys」をクリックする。すると以下の画面に切り替わる。この画面では、登録済みの公開鍵が表示される。

「Add an SSH key」をクリックし、公開鍵の登録を行う。

上記の画面の「Title(タイトル)」部分は、公開鍵を識別するための任意の名前を入力する。基本的には1つのクライアントごとに1つ公開鍵を作成する。このため、タイトルは、どのクライアントの公開鍵なのかがわかるように名前をつけると良い。「Key」の部分には公開鍵の中身をコピーする。

「Title」と「Key」を入力したら、「Add Key」をクリックする。

うまく登録できると上記のように表示される(Title, Fingerprint, Keyの情報は黒塗りで消してある)。

Linux環境(OpenSSH)を用いた鍵ペアの作成_

まず、ssh-keygenコマンドが存在するかを確認する。ssh-keygenコマンドが存在するパスが返ってきたら、ssh-keygenコマンドを利用できる。そうでなければ、まずOpenSSHをインストールすること。

% which ssh-keygen
/usr/bin/ssh-keygen (このような絶対パスが返ってきたらOK。パス自体はこれと同じでなくてもよい)

鍵ペアを作成する。Linux環境でのログイン名がgotohの場合以下のようになる。

% cd
% ssh-keygen -t ed25519 -C "識別用の文字列。たとえば「UbuntuOnWSLInLaptopPC」"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/gotoh/.ssh/id_ed25519): /home/gotoh/.ssh/id_ed25519_for_gitlab #秘密鍵のファイル名をデフォルトから変える。例えば例のようにする。
Enter passphrase (empty for no passphrase):  #ログインパスワードとは異なる任意の文字列を入力する
Enter same passphrase again:                 #もう一度同じ文字列を入力する
Your identification has been saved in /home/gotoh/.ssh/id_ed25519_for_gitlab.
Your public key has been saved in /home/gotoh/.ssh/id_ed25519_for_gitlab.pub.
The key fingerprint is:  #以下は鍵ペアごとに違うので注意!
SHA256:62ftC4dNF7r4TQ8HDGQTjn66krhakOVFZ4HKrx/u2ww UbuntuOnWSLInHomePC
The key's randomart image is:
+--[ED25519 256]--+
|        ..+.=.   |
|       ..o = .   |
|     .... . o .  |
|     +o. .   + . |
|    o ..S . + +  |
|     .  .. B o . |
|      .oE.=.+ o .|
|     .ooo=o=.o + |
|    ...+*=+.+.. .|
+----[SHA256]-----+

鍵ペアが存在するかを確認する。id_ed25519_for_gitlab(秘密鍵)とid_ed25519_for_gitlab.pub(公開鍵)があればOK。

% ls -l .ssh
~中略~
id_ed25519_for_gitlab
id_ed25519_for_gitlab.pub

GitLab用の鍵を~/.ssh/configで登録しておく。configが無い場合は以下のように作成する。

% cd ~/.ssh
% touch config
% chmod 600 config

以下をconfigに追加する。

Host aise-gitlab
     HostName GitLabが設置されているマシンのFQDN(ホスト名+ドメイン名)を記載する
     IdentityFile ~/.ssh/id_ed25519_for_gitlab

次にGitLabで公開鍵を登録する。

上記の画面の「Title(タイトル)」部分には、「鍵ペアを作ったLinux環境のホスト名+Linux」たとえば、ホスト名がpiならば、「pi_linux」と入力する。「Key」の部分には id_ed25519_for_gitlab.pub の中身をそのままコピーする。

id_ed25519_for_gitlab.pub の中身はたとえばcatコマンドなどで表示する。

% cat ~/.ssh/id_ed25519_for_gitlab.pub

Windows環境(puttygen.exe)を用いた鍵ペアの作成(2021年4月28日更新)_

puttyがC:\puttyに設置されているとする。C:\putty\PUTTYGEN.EXE をダブルクリックする。

「Type of key to generate」の項で「Ed25519」を選択し、「Generate」をクリックする。すると、公開鍵と秘密鍵の作成が始まる。カーソルを自由に動かすと青のゲージがどんどん増えていく(下図参照)

青のゲージが右端まで行くと下図のようになる。「Key pathphrase」と「Confirm pathphrase」にパスフレーズを入力する。パスフレーズはログインパスワードと異なるものにすること。パスフレーズを設定しておくことで、秘密鍵を盗まれてもパスフレーズが分からない限り利用されない。

次に「Save public key」をクリックし、公開鍵を保存する。ファイル名は「public.aise_gitlab.key」とし、C:\putty に保存する(C:\putty\public.aise_gitlab.key)。

次に「Save private key」をクリックし、秘密鍵を保存する。ファイル名は「secret.aise_gitlab.ppk」とし、C:\putty に保存する(C:\putty\secret.aise_gitlab.ppk)。

上図の「Public key for pasting in OpenSSH authorized_keys file:」のフィールドに表示されている文字列をコピーし、GitLabのSSH keyの登録ページの「Key」の欄にペーストする。「Title」には「鍵ペアを作ったLinux環境のホスト名+Win」たとえば、ホスト名がpiならば、「pi_win」と入力する。

鍵ペアを作ったあとにPUTTYGEN.EXEを終了してしまい、「Public key for pasting in OpenSSH authorized_keys file:」のフィールドをコピーし忘れた場合は、PUTTYGEN.EXEを再起動し、以下の画面の「Load」でC:\putty\secret.aise_gitlab.ppkで読み込み直すこと。

戻る_