Git サーバー - SSH 公開鍵の作成と登録

Git サーバー接続時に SSH プロトコルを使う

ローカル開発環境だけで Git を使うなら問題ないが、外部 Git サーバー、たとえば GitHub、GitLab、Bitbucket などからコードを clone したり push したりする場合は、SSH プロトコルを使う方が安全である。GitHub のようにインターネット経由で利用する多くの Git サーバーは、SSH プロトコルの公開鍵認証方式をサポートしている。

SSH 公開鍵と秘密鍵を作る

公開鍵を使うには、まず公開鍵を作成する必要がある。ほとんどの OS で手順は似ている。

既存の鍵があるか確認する

まず、すでに作成済みの鍵があるか確認する。

$ cd ~/.ssh
$ ls
id_rsa          id_rsa.pub      known_hosts     known_hosts.old

id_rsa などが表示され、同じ名前に .pub 拡張子が付いたファイルもあれば、すでに公開鍵が作成されている。このファイルがある場合は、その鍵を使える。

ssh-keygen で作成する

ssh-keygen というプログラムで鍵を作成する。ssh-keygen は Linux や macOS の SSH パッケージに含まれており、Windows では Git for Windows に含まれている。

ssh-keygen

次のようにコマンドを実行すると、保存したいディレクトリとパスワードを 2 回入力する。パスフレーズを設定しない場合は、そのまま Enter を押す。

% ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/user/.ssh/id_rsa
Your public key has been saved in /Users/user/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:QKYpyuK6Un3qb0ARjL7lw5ER1mZAMl5nYGMQARD3X0Y user@AL02263852.local
The key's randomart image is:
+---[RSA 3072]----+
|=oBB%*= E        |
| o.O+O+.         |
| .o +*. o        |
|....=. +         |
|o. B .. S        |
|o o * .          |
| o   =           |
|o   . .          |
|+. ..o.          |
+----[SHA256]-----+

正しく作成されていれば、次のように公開鍵を確認できる。

% cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAAD2xwcZj/fJnLZbfw ... 中略 ... d+iauipAZDRLz0cgJcoTr0XuZ9DU= user@AL01234567.local

公開鍵を GitHub アカウントへ登録する

作成した公開鍵は、次のリンクから GitHub アカウントへ登録できる。

GitHub - Add new SSH keys

参照