質問: sierraにアップデートしてから、macosは私のsshパスフレーズを要求し続けます 以前はパスフレーズを覚えていましたが、今は毎回それを聞いています。私はこのコマンドで公開鍵を再生成する必要があることを読みました。ssh-keygen -y -f id_rsa > id_rsa.pub しかし、それは何も修正しませんでした。どうやってmacosに自分のパスフレーズを記憶させることができますか?
回答: capistrano を使用してコードをデプロイしようとしたときにも、この問題が発生しました。非常にイライラする。この問題に対処するために私が知っている2つの方法があります。方法1:sshエージェントにall knownキーを追加する。そこで、私が見つけた解決策の1つは、ssh-addオプションを指定して -a を実行することです。これにより、キーチェーンに格納されているパスフレーズを使用してsshエージェントにすべての既知のidが追加されます。ssh-add -a これでうまくいきますが、再起動しても持続しません。二度とこのことについて心配したくない場合は、ユーザーの~/.bash_profileファイルを次のように開いてください。nano ~/.bash_profile そしてこの行を一番下に追加します。ssh-add -a 2>/dev/null; これで、新しいターミナルウィンドウを開いたときに、すべてうまくいくはずです。方法2:--- キーチェーンにあるsshキーのみをエージェントに追加します。そのため、ssh-add -aオプションはほとんどの基本的なケースでうまくいくはずですが、最近では、より一般的なid_rsa.pubの上に6-7 vagrantボックス(アクセスにsshキー/ idを使用)をセットアップするという問題に遭遇しました。つまり、サーバーアクセスはパスワードに基づいており、sshキー/ idはsshキー/ idであるため、sshキー/ idに基づく試行が多すぎるためにリモートサーバーからロックアウトされてしまいました。そのため、sshエージェントは自分のssh鍵をallしようとしましたが、失敗しました。パスワードプロンプトを表示することすらできませんでした。問題は、必要でなくてもssh-add -aがあなたが持っているすべてのsshキー/ idをエージェントに任意に追加するだけだということです。 vagrantボックスの場合などです。多くのテストの後の私の解決策は以下の通りでした。ssh-add -lで示されているように、あなたが必要以上にあなたのエージェントに追加されたsshキー/アイデンティティを持っているなら、最初に、次のようにそれらをすべてエージェントから削除してください:ssh-add -d それが終わったら、sshエージェントを次のようなバックグラウンドプロセスとして起動します。eval "$(ssh-agent -s)" 今、それは奇妙になります、そして私はあまりよくわかりません。場合によっては、以下のようにエージェントに~/.ssh/id_rsa.pubキー/ idを明確に追加できます。ssh-add ~/.ssh/id_rsa.pub パスフレーズを入力してヒット return そして、あなたは行ってもいいはずです。しかし、他の場合には、単にこれを実行するだけでキー/ idを追加するのに十分です。ssh-add -k すべてうまくいった場合は、ssh-add -lと入力すると、1つのsshキー/ idが一覧表示されます。すべて良いですか?今すぐあなたの.bash_profileを開きます:nano ~/.bash_profile そしてこの行を一番下に追加します。 -aバージョンがある場合は、コメントするか削除します。ssh-add -k 2>/dev/null; これにより、起動/再起動のたびにsshキー/ idをsshエージェントにリロードできます。アップデート:appleは現在、open ssh設定オプションにusekeychainオプションを追加し、ssh-add -aも解決策と見なしています。macos sierra 10.12.2の時点で、apple(私が思うに)はssh設定のためのusekeychain設定オプションを追加しました。 manページを(man ssh_config経由で)チェックすると、以下の情報が表示されます。usekeychain on macos, specifies whether the system should search for passphrases in the user's keychain when attempting to use a par- ticular 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''. これはappleがssh-add -aをあなたの.bash_profile このopen radarチケットで説明されているように に追加すること、あるいはユーザごとの~/.ssh/configのオプションの1つとしてusekeychainを追加することとして解決します。