koba::blog

小林聡: プログラマです

SSH鍵の交換

Homebrewのアップデート - koba::blog の続き。Mavericks時代に SSH接続に公開鍵を使う - koba::blogSSH鍵を作成しており「移行アシスタント」で移行もされているのですが、メールアドレス部分が koba@angie.local になっていて新しいMacBookのマシン名と一致しないので、Connecting to GitHub with SSH - User Documentation にしたがい新しい鍵を作成します。

SSH鍵生成

現在のSSH鍵を待避します。

$ mv ~/.ssh ~/.ssh.old

新しくSSH鍵を生成します。4096ビットのRSA鍵とします。-C は指定せず、現在のマシン名に基づいたメールアドレスとなるようにします。*1

$ ssh-keygen -t rsa -b 4096

生成したSSH鍵を待避します。

$ mv ~/.ssh ~/.ssh.new

公開鍵の追加

待避しておいた以前の鍵を復旧し、新しい公開鍵を接続先にコピーします。

$ mv ~/.ssh.old ~/.ssh
$ scp ~/.ssh.new/id_rsa.pub kobalab.net:

接続先で公開鍵を追加します。

$ cat id_rsa.pub >> ~/.ssh/authorized_keys
$ rm id_rsa.pub

新く作成したSSH鍵に復旧します。

$ mv ~/.ssh ~/.ssh.old
$ mv ~/.ssh.new ~/.ssh

SSH鍵をssh-agentに追加

Sierra(macOS 10.12)以降はパスフレーズがキーチェーンに追加されず、毎回聞いてくるので面倒です。以下の手順でキーチェーンに追加します。

ssh-agent をバックグラウンドで起動します。

$ eval "$(ssh-agent -s)"

~/.ssh/config ファイルに以下を追加します。

Host *
 AddKeysToAgent yes
 UseKeychain yes
 IdentityFile ~/.ssh/id_rsa

ssh-add コマンドを使用して ssh-agent にSSH鍵を追加します。

$ ssh-add -K ~/.ssh/id_rsa

GitHubに公開鍵を追加

GitHubに公開鍵を追加する場合は以下にしたがいます。

*1:SSH鍵はマシンごとに生成しておきたいというのが理由ですが、GitHubがユーザの公開鍵を公開しているらしいので、ここに本当のメールアドレスを入れたくないという事情もあります