会社のMacではそんなことないんだけど、自前のMacbookでsshすると、なぜか毎回パスワードを求められます。なぜかKeychainに保存されないんです。今まではssh-agentとか使って登録してたんだけど、結局再起動したらやり直しだし、面倒くさい!ってことで、原因を調べてみました。

さすがにpull、pushの度にパスフレーズ入力するのがつらくなってきた;;

予想

最初は以下の予想をしていました。

  • 公開鍵/秘密鍵の権限が間違っている
  • .sshディレクトリの権限が間違っている
  • そもそも公開鍵/秘密鍵がペアになってない
  • なんかのキャッシュが邪魔している

ま、結果、全部違ったんですけど;;

ハハ、僕の力量なんてこんなもんです。しゃーないしゃーない。

原因

どうやらmacOS Sierraで使われているsshのバージョンが原因の模様。

$ ssh -V
OpenSSH_7.3p1, LibreSSL 2.4.1

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

社用MacはSierraにしてないから大丈夫なわけだ。なるほど合点がいった。

解決法

~/.ssh/configに以下の設定を書く。これだけ!

AddKeysToAgent yes
UseKeychain yes

これを書くことでいつものようにsshがパスレスになった。快適快適(というかこれが普通。pull,pushも当然パスレス!ヒャッハー!

それでは良きsshライフを!