macOS Sierra の SSH で、秘密鍵のパスフレーズが Keychain 保存されない問題の解決方法

このエントリーをはてなブックマークに追加

昨年11月に新しい Macbook Pro を購入して、12月にようやく環境移行などの設定をしはじめたが、これまでできていた SSH接続パスフレーズの Keychain 保存ができない。 SSH の接続が必要な Git 利用時なんかでも、毎回パスの入力を求められてしまうようになった。

Twitter でもつぶやいたが、解決にたどり着けず。自分も検索でたどりついていたが、参考リンクのリプライをもらうものの、解決にはいたらず。

macOS Sierra のSSH接続で、秘密鍵へのパスを覚えてくれない問題 – Qiita

とりあえず AddKeysToAgent yes.ssh/config に書いて対処を。しかし、この方法は、再起動するたびに再入力をする必要があった。

そんな状態で年末も過ごしていたが、別件で SSH の検索をしていると、解決方法が見つかっていたようなので、SSH 接続で Keychain が使われない問題の対応方法をメモとしてエントリー。

Mac の Keychain 保存を有効にするオプション

以前の検索時にそれっぽいことは書いていなかったけど、再度読んでみると、回答が投稿されていた。

difficulties with ssh-agent in macOS Sierra : osx

.ssh/config で以下のように設定

.ssh/config

AddKeysToAgent yes
UseKeychain yes

AddKeysToAgent は macOS Sierra の OpenSSH が 7.3 になったことによる変更。

しかし、この設定だけだと、前述の通りで再起動などで再入力を求められる。

重要なのは2行目の UseKeychain これを yes に設定しておく。

Mac の ssh_config

SSH の ssh_config には AddKeysToAgent についは書いていたけど、 UseKeychain にはオプションがない。しかし、Mac の ssh_config には記載があった。

man ssh_config mac OS 10.12.2 - 6e43ab17

Mac で $ man ssh_config と叩くと出て来る説明は以下の通り。

UseKeychain
On macOS, specifies whether the system should search for passphrases in the user's keychain when attempting to use a particular key. When the passphrase is provided by the user, this option also specifies whether the passphrase should be stored into the keychain once it has been verified to be correct. The argument must be ``yes'' or ``no''. The default is ``no''.

設定後に何も指定がないパターン、 AddKeysToAgent だけがあるパターン UseKeychain だけがあるパターン、 どちらも指定があるパターンを試して、後者2つが再起動をしても再入力求められずに接続ができたことを確認。

セキュリティ的には毎回入力したほうがいいのでしょうけど、やはり保持できていないと地味に不便だったので今回設定したことで今後は楽になることでしょう。

掲載写真

Photographer
PonkanBox
License
Creative Commons (BY-ND)