Mac に公開鍵と秘密鍵を設定する

Mac に公開鍵と秘密鍵を設定する手順を忘れるので備忘録として残しておく。

ssh-keygen コマンドで公開鍵と秘密鍵を生成する

ターミナルを起動して以下のコマンドで、.ssh ディレクトリがあるか確認。

~ $ ls -a ~/.ssh/

ない場合は以下のコマンドでディレクトリを作成する

~ $ mkdir ~./ssh

次に ssh-keygen コマンドで公開鍵と秘密鍵を生成する。

今回は GitHub 用で利用する公開鍵と秘密鍵を生成します。
-f オプションを付けることでファイル名を指定できる。

以下のコマンドを入力。

~ $ ssh-keygen -f .ssh/id_rsa.github.com

GitHub 用の公開鍵と秘密鍵とわかるように .github.com というサフィックス(接尾辞)を付けた。
コマンドを実行するとパスフレーズが聞かれるので任意で入力する。

何も入力しないで Enter を入力すればパスフレーズはなしになる。

~ $ ssh-keygen -f .ssh/id_rsa.github.com
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):

もう一度パスフレーズが聞かれるので、間違いないように入力する。
ちなみにパスフレーズを入力する際、ターミナルに入力を示す画面変化はない。

~ $ ssh-keygen -f .ssh/id_rsa.github.com
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

.ssh/ ディレクトリに公開鍵と秘密鍵が生成される。

  • id_rsa.github.com
  • id_rsa.github.com.pub

拡張子 .pub の方が公開鍵。

GitHub に公開鍵を登録する

公開鍵と秘密鍵が生成できたので GitHub に公開鍵を登録する。
GitHub のアカウントがない場合はアカウントを作成する。

GitHub にサインインして、アカウントの Settings ページから、左側の Personal settings の [SSH and GPG keys] を選択。

SSH keys の右にある「New SSH key」ボタンをクリックして、Title は任意の名前を入力し、Key に公開鍵の中身をペーストする。

公開鍵の中身をコピーするには、以下のコマンドで可能。

~ $ cat .ssh/id_rsa.github.com.pub | pbcopy

このコマンドは .ssh/ ディレクトリにある公開鍵 id_rsa.github.com.pub の内容を cat コマンドでターミナルに出力して、内容を pbcopy コマンドでクリップボードにコピーするコマンド。コピーが済んだら、先ほどの GitHub の Key の箇所にペーストし、緑色の「Add SSH key」ボタンをクリックすれば公開鍵の登録は完了。

最後にターミナルに以下のコマンドで GitHub に接続テストしてみる。

~ $ ssh -T git@github.com

初回の接続時に認証するか聞かれるのでyesと入力する。

同時に known_hosts ファイルが生成される。このファイルはサーバーにある公開鍵の情報が保存されているファイル。

で、以下のように出力されれば接続OK。

~ $ ssh -T git@github.com
Hi [GitHub account name]! You've successfully authenticated, but GitHub does not provide shell access.

Bitbucket などの Git ホスティングサービスも同様の手順で接続できるだろう。