見出し画像

GitLabの公開鍵認証

GitLabのパスワード認証は煩わしいので、SSH認証キー(公開鍵)を登録する。


キーペアの作成

キーペアを作成する

公開鍵の利用が初めての場合は下記の通り、ssh-keygenコマンドにより公開鍵と秘密鍵のペア(キーペア)を作成します。

  • ssh-keygen -t rsa -C "hoge@gmail.com"
    メールアドレスにはGitLabのアカウントで使用しているメールアドレスを指定してください。

  • Enter file in which to save the key (/Users/roboworks/.ssh/id_rsa):
    キーペアの保存先を聞かれます。何も指定せずにenterキーを押せばデフォルトの場所に保存されます。

  • 公開鍵のファイル名を指定してください。

  • Enter passphrase (empty for no passphrase):
    何も入力せずにenterキーを押せばパスワードなしでSSH接続が可能になります。

ユーザ名@クライアントPC: ~$ ssh-keygen -t rsa -C "hoge@gmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/roboworks/.ssh/id_rsa): id_rsa_hoge
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/roboworks/.ssh/id_rsa
Your public key has been saved in /Users/roboworks/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:8T1nJ2yDVqUG+aryRKWF6bUzsZoJH3hsIfcQ07XH1Vk roboworks@okadahiroyukinoMacBook-Pro.local
The key's randomart image is:
+---[RSA 4096]----+
|          o..o. E|
|           =o. *o|
|        o * =.= o|
|         O X O.. |
|        S X @.B .|
|         * *.B + |
|          *.     |
|        ...      |
|         o.      |
+----[SHA256]-----+

公開鍵をGitLabに登録

下記のようにGitLabサイトにログインしてユーザ設定画面のSSHキーメニューから公開鍵(SSHキー)を登録します。

GitLabのユーザ設定画面からSSHキーを登録する

「新しいキーを追加ボタン」をクリックし、

  1. 公開鍵(id_rsaファイル)をテキストエディタ(vi, vim)などで開き、中身を全てコピーして、「キー」領域に全てペーストします

  2. 「タイトル」は何でもいいので、使用するPCの名前などを設定してください

  3. 「有効期限」は✖︎をクリックすると無期限に指定できます。

  4. 「キーを追加」ボタンをクリックすれば登録は完了です。

SSHキーの登録画面

ssh-agentに秘密鍵を登録する

ssh-agentが起動しているかを確認して

$ ssh-add -l
Could not open a connection to your authentication agent.

ssh-agentを起動する

$ eval `ssh-agent`
Agent pid 777

ssh-agentの秘密鍵の登録状態を確認し、秘密鍵が登録されてない状態だったら

$ ssh-add -l
The agent has no identities.

ssh-agentに秘密鍵を登録する

$ ssh-add ~/.ssh/rsa_gitlab
Identity added: /c/Users/hoge/.ssh/rsa_gitlab (hoge@gmail.com)

動作確認

$ ssh -T git@gitlab
Welcome to GitLab, @hoge!

「Welcome to GitLab」と出れば、無事に接続成功です。

GitLabのリポジトリから「SSHでクローン」のURLをコピーし、git cloneコマンドを実行してください。

下記のようにSSH公開鍵認証によりパスワード無しで実行できるのが確認されます。

$ git clone git@gitlab.com:okadalaboratory/docker-images/XXXX.git
Cloning into 'XXXX'...
remote: Enumerating objects: 68, done.
remote: Counting objects: 100% (29/29), done.
remote: Compressing objects: 100% (28/28), done.
remote: Total 68 (delta 14), reused 0 (delta 0), pack-reused 39
Receiving objects: 100% (68/68), 100.59 KiB | 1.06 MiB/s, done.
Resolving deltas: 100% (28/28), done.


この記事が気に入ったらサポートをしてみませんか?