ssh鍵認証で毎回パスワードを求められた
githubのアカウントを作成してssh鍵認証の接続確認をした。認証確認のためのプロジェクトを作成してcloneとpushが確認できればいいや。
鍵を作る。githubに書かれてたコマンドのままでok。秘密鍵の名前はid_rsa_github
とした。
$ ssh-keygen -t rsa -C "your_email@example.com " # 鍵を作る
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user/.ssh/id_rsa): id_rsa_github
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
~/.ssh/config
にgithub用の設定を追記
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_github
IdentitiesOnly yes
これであとはcloneしてcommitしてpushして終わりのはずが、fetchとかすると
Identity added: /Users/user/.ssh/id_rsa_github (/Users/user/.ssh/id_rsa_github)
という表示があって毎回パスワードを求められた。
いちおうパーミッションを確認すると.ssh
は700で鍵は600で問題なさそう。
よくよく考えると素直に~/.ssh
に鍵を設置していればこんなことにはならなかったけど、設定ファイルを~/configs/
みたいな場所を作って一箇所にまとめて、シンボリックリンクを貼っていた。そして今回は秘密鍵しかシンボリックリンクを貼ってなかった。
結果、公開鍵もシンボリックリンクを作ってあげるとIdentity added...
といったことは聞かれなくなった。素直に作業進めておけばこんなことにはならないけど、こういうことしておいたほうが複数マシンでの作業とか便利だしなぁ。。
追記@2016/12/16
macOS Sierra 10.12.2にアップデートしてiTerm2もアップデートしたところ再発していました。
Enter passphrase for key '/Users/user/.ssh/id_rsa':
対応は ssh-add
コマンドに -K
オプションで解決できるようでした。
$ ssh-add --help (git)-[develop]
ssh-add: illegal option -- -
usage: ssh-add [options] [file ...]
Options:
(中略)
-K Store passphrases in your keychain.
With -d, remove passphrases from your keychain.
実行コマンド
$ ssh-add -K /Users/user/.ssh/id_rsa
と思いきや、再起動をしたところパスワードの再入力が必要でした。。。
最終的に
~/.ssh/config
ファイルを修正しました。追記したのは UseKeychain yes
と AddKeysToAgent yes
です。
こんな感じで ~/.ssh/config
の最初に追記しました。
#
# global setting for macOS Sierra
Host *
UseKeychain yes
AddKeysToAgent yes
参考