背景
まず前提知識として、ssh agent に秘密鍵を登録するには、通常次のようにする
$ ssh-add ~/.ssh/id_rsa
マシンを再起動すると消えるので、その場合、再度 ssh-add する必要がある。
macOS の ssh agent には特別に keychain に秘密鍵を登録する -K オプションがあり、それを使うと再起動のたびに ssh-add する手間を省くことができる。
$ ssh-add -K ~/.ssh/id_rsa
以前はこれだけで良かったのだが、Sierra (10.12) 以降では keychain に保存はされるものの、再起動時に自動では読み込まれなくなったので解決方法を記す。
1. .ssh/config に macOS 特有設定を書く
以下のような設定を .ssh/config に書いておくと、初回 ssh 時に keychain から自動で読み込まれるようになるのでお使い頂ける。
.ssh/config
Host *
UseKeychain yes
AddKeysToAgent yes
2. ssh-add -K を打ち込む
ssh-add -K
のように秘密鍵の指定なしで打ち込むと、Keychain から読み込まれるので、これを .bashrc
にでも書いてシェル起動時に読み込まれるようにすれば解決できる。
所感
個人的には 1. がオススメです。