SSH秘密鍵をキーチェーンに永続的に追加してsshで自動的に使用できるようにするにはどうすればよいですか?

ssh-add -K ~/.ssh/id_rsaはキーをロードしますが、再起動するたびにパスワードを要求するようです。

ログインの間にキーパスワードを再入力する必要がない解決策を探しています。

コメント

  • できますパスワードプロンプトが表示されたときについてもう少し言いますか?リモートサーバー用のsshキーを持っているので、Macのログインパスワードなどと同じではないことを保証します。'を入力する必要はありません。 のsshキーのパスワード。ターミナルを開くには、" ssh < server >

、そして私は'そこにいます。私は最初にこのキーをOSX10.5で設定したと思います。 id_dsaですが、'それが重要だとは思いません。

  • 私のid_rsaキーにはパスワードがあります。
  • これをずっと前に解決したという問題もあり、'自分が何をしたかを正確に思い出せません。しかし、私はと思いますアイデアはssh-addを実行するのではなく、ssh直接。キーのパスフレーズとして表示されるウィンドウがポップアップ表示され、キーチェーンに保存するためのチェックボックスが表示されます。
  • @ Sorin-私の場合もそうです!私はずっと前に一度それを入力しなければならなかった、そしてそれ以来Macは私のためにそれを保存してくれた。うまくいけば、Harald 'のアドバイスが役立つでしょう。
  • キーチェーンパスワード(つまり、ログインパスワード)またはキー' sパスフレーズ?後者の場合'、パスフレーズは間違いなくキーチェーンに保存されていますか?これを確認するには、キーチェーンアクセスを開き、ログインキーチェーンで検索します。
  • 回答

    OSXの場合、ネイティブのssh-addクライアントには、秘密鍵のパスフレーズをOSXキーチェーンに保存するための特別な引数があります。つまり、通常のログインでsshで使用できるようにロックが解除されます。OSXシエラでは後で、常にキーチェーンを使用するようにSSHを構成する必要もあります(以下の手順2を参照)。

    パスフレーズなしでキーを使用することもできますが、セキュリティを希望する場合は、このワークフロー。

    ステップ1-キーをキーチェーンに保存します

    これを1回だけ実行します:

    ssh-add -K ~/.ssh/[your-private-key] 

    キーパスフレーズを入力すると、再度要求されることはありません。

    (OSXのSierraより前のバージョンを使用している場合は、完了です。手順2は必要ありません。)

    ステップ2-常にキーチェーンを使用するようにSSHを構成する

    OSX Sierraは、キーを永続化するという便利な動作を削除したようですログインの合間に、sshへのアップデートはデフォルトでキーチェーンを使用しなくなりました。このため、アップグレード後、および再起動するたびに、キーのパスフレーズを入力するように求められます。

    解決策は非常に単純で、このgithubスレッドのコメント。設定方法は次のとおりです。

    1. 上記の手順1を完了して、キーチェーンにキーを保存していることを確認してください。

    2. まだ作成していない場合は、~/.ssh/configファイルを作成します。つまり、ホームディレクトリの.sshディレクトリに作成します。 configというファイル。

    3. その.ssh/configファイルに、次の行を追加します。 :

       Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa 

      ~/.ssh/id_rsaを秘密鍵の実際のファイル名に変更します。他の秘密鍵がある場合~/.sshディレクトリに、それぞれにIdentityFile行を追加します。たとえば、は2番目の秘密鍵です。

      UseKeychain yesは鍵部分であり、SSHにOSXキーチェーンで鍵を探すように指示します。パスフレーズ。

    4. それだけです!次回ssh接続をロードすると、指定した秘密鍵が試行され、OSXキーチェーンでパスフレーズが検索されます。パスフレーズを入力する必要はありません。

    コメント

    • @Poulsbo & @ Abram-私の更新を参照してください。Sierraが自動動作を変更したので、実行する必要があります。 ssh-add -A手動で保存したキーチェーンをロードします。上記で参照したいくつかの可能な解決策。
    • @triswebヒントをありがとう。joshbuchea'.ssh/configファイルを変更するdiv>のソリューションは有望に見えます! github.com/lionheart/openradar-mirror/issues/

  • うまくいきます!私の場合、キーチェーンにキーを追加してパスフレーズをに登録するには、Kフラグに加えてAフラグを使用する必要がありました。それ(ssh-add -AK ~/.ssh/[your-private-key])。ありがとう!
  • usekeychainオプションを使用しても、キーチェーンが再起動時に.ssh / id_rsaキーをドロップすることがわかります。
  • まったく同じことを実行しましたが、Macは引き続き再起動時にキーを押します。
  • 回答

    同様の問題が発生し、毎回私のパブキーパスフレーズ。上記のユーザー「trisweb」の提案に従って、~/.ssh/configに対して次のオプションをオンにしました。

    Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa 

    しかし、それでもsshを使いたいと思うたびにプロンプトが表示されました。最終的に、ssh -vをオンにして、次のデバッグ行を見つけました。

    debug1: key_load_private: incorrect passphrase supplied to decrypt private key 

    次に、「キーチェーンアクセス」でキーチェーンを開きました。 .app」、「SSH:/Users/username/.ssh/id_rsa」という名前のキーを見つけて開きました。 [パスワードを表示]をクリックしてパスワードを開示しましたが、実際、キーリングのパスフレーズが古いパスフレーズであることがわかりました。キーチェーンアクセスでパスフレーズを更新しましたが、パスワードなしで機能するようになりました。

    次のフレーズでパスフレーズを更新することもできます:

    ssh-keygen -p -f ~/.ssh/id_rsa 

    コメント

    • 私のMacでは、パスワードは「iCloud」チェーンの「password」カテゴリに保存されます。 「ログイン」チェーンにあると思いました。

    回答

    上記が機能しなかったすべての場所へ、私の問題は、UseKeychain yes & AddKeysToAgent yesをすべて複製していたことが原因のようです。 sshキープロファイル/ショートカット。 ~/.ssh/configファイルを更新して、これらを1回だけ宣言すると、起動時にパスワードの入力を求められることなく、ログイン時にすべて読み込まれるようになりました。例:

    Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/foo IdentityFile ~/.ssh/bar Host foo HostName foo.com User fooUser IdentityFile ~/.ssh/foo Host bar HostName bar.com User barUser IdentityFile ~/.ssh/bar 

    コメント

    • Host *は特定のホストルールに従うことをお勧めします。詳細については、man ssh_configを参照してください。

    回答

    また、 macOS SierraおよびHighSierra(以前のバージョンについてはわかりません)でssh-add -Aを実行すると、エージェントはパスフレーズがキーチェーンに保存されているすべてのキーをロードできます…とても便利です

    回答

    公開鍵を次の場所に追加します:

    .ssh/known_hosts 

    公開キーは通常オンになっています:

    /home/user/.ssh/id_rsa.pub 

    役立つことを願っています

    コメント

    • authorized_keys
    • とにかく、複数のキーがある場合、これは'機能しません!

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です