![見出し画像](https://assets.st-note.com/production/uploads/images/125636359/rectangle_large_type_2_c997d270821d602c610d66ee87892b4e.png?width=1200)
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キー)を登録します。
![](https://assets.st-note.com/img/1703553552379-oS1eeIV1Hn.png?width=1200)
「新しいキーを追加ボタン」をクリックし、
公開鍵(id_rsaファイル)をテキストエディタ(vi, vim)などで開き、中身を全てコピーして、「キー」領域に全てペーストします
「タイトル」は何でもいいので、使用するPCの名前などを設定してください
「有効期限」は✖︎をクリックすると無期限に指定できます。
「キーを追加」ボタンをクリックすれば登録は完了です。
![](https://assets.st-note.com/img/1703553746896-FOj3xrghHL.png?width=1200)
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-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コマンドを実行してください。
![](https://assets.st-note.com/img/1703557087099-LLKb7oHUlw.png?width=1200)
下記のように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.