それはそうssh-add -K ~/.ssh/id_rsa
あなたの鍵をロードしますが、パスワードの再起動するたびに要求されます。
ログイン間でキーパスワードを再入力する必要のないソリューションを探しています。
id_rsa
鍵にはパスワードがあります。
ssh-add
ssh
それはそうssh-add -K ~/.ssh/id_rsa
あなたの鍵をロードしますが、パスワードの再起動するたびに要求されます。
ログイン間でキーパスワードを再入力する必要のないソリューションを探しています。
id_rsa
鍵にはパスワードがあります。
ssh-add
ssh
回答:
OSXでは、ネイティブssh-add
クライアントには、OSXキーチェーンに秘密鍵のパスフレーズを保存するための特別な引数があります。つまり、通常のログインでは、sshで使用するためにロック解除されます。OSX Sierra以降では、常にキーチェーンを使用するようにSSHを構成する必要があります(以下のステップ2を参照)。
または、パスフレーズなしでキーを使用できますが、このワークフローで確実に受け入れられるセキュリティを好む場合。
これを一度だけ実行してください:
ssh-add -K ~/.ssh/[your-private-key]
キーパスフレーズを入力すると、再度要求されることはありません。
(OSXのSierra以前のバージョンを使用している場合は、完了です。ステップ2は必要ありません。)
OSX Sierraはログイン間でキーを永続化する便利な動作を削除し、sshの更新ではデフォルトでキーチェーンを使用しなくなったようです。このため、アップグレード後、および再起動のたびに、キーのパスフレーズを入力するよう求められます。
解決策は非常に簡単で、このgithubスレッドコメントで概説されています。設定方法は次のとおりです。
上記の手順1を完了して、キーチェーンにキーを保存します。
まだ作成していない場合は、~/.ssh/config
ファイルを作成します。言い換えれば、.ssh
ホームディレクトリのディレクトリに、というファイルを作成しますconfig
。
その.ssh/config
ファイルに、次の行を追加します。
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa
~/.ssh/id_rsa
秘密鍵の実際のファイル名に変更します。~.ssh
ディレクトリに他の秘密鍵がある場合はIdentityFile
、それぞれの行も追加します。たとえばIdentityFile ~/.ssh/id_ed25519
、2番目の秘密キーを読み取る追加の行が1つあります。
これUseKeychain yes
は重要な部分であり、SSHがOSXキーチェーンでキーパスフレーズを探すように指示します。
それでおしまい!次回ssh接続を読み込むと、指定した秘密鍵が試され、OSXキーチェーンでパスフレーズが検索されます。パスフレーズの入力は必要ありません。
ssh-add -K ...
すると、パスワードの入力を求められることなく、現在のセッションに対してのみ、sshエージェントにキーが追加されます。再起動後、コマンドを再発行する必要がありました。
ssh-add -A
。保存したキーチェーンをロードするには、手動で実行する必要があります。上記のいくつかの可能な解決策。
.ssh/config
ファイルを変更するjoshbucheaのソリューションは有望に見えます!参照してくださいgithub.com/lionheart/openradar-mirror/issues/...
A
フラグに加えてフラグを使用する必要がありK
ました(ssh-add -AK ~/.ssh/[your-private-key]
)。ありがとう!
同様の問題がありました。パブキーのパスフレーズを毎回要求されていたからです。
上記のユーザー「trisweb」の提案により、これらのオプションを〜/ .ssh / configで有効にしました。
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa
ただし、sshを使用するたびにプロンプトが表示されます。
最終的に「ssh -v」をオンにすると、次のデバッグ行が見つかりました。
debug1:key_load_private:秘密鍵を復号化するために指定されたパスフレーズが正しくありません
次に、「Keychain Access.app」でキーチェーンを開き、「SSH:/Users/username/.ssh/id_rsa」という名前のキーを見つけて開きました。
「パスワードを表示」をクリックしてパスワードを公開しましたが、キーリングのパスフレーズが古いパスフレーズであることがわかりました。
キーチェーンアクセスのパスフレーズを更新し、パスワードなしで動作するようになりました。
このフレーズでパスフレーズを更新することもできました。
ssh-keygen -p -f〜/ .ssh / id_rsa
「ログイン」キーチェーンは、非アクティブまたはスリープ、または場合によっては再起動後にロックされるため、毎回パスワードの入力を求められます。これを解決する方法は2つあります。
「ログイン」キーチェーンの設定を変更します。sshキーが「ログイン」キーチェーンに保存されていると仮定します。
パスフレーズを使用せずに別のSSHキーを生成します。
ssh-keygen -t rsa -b 4096 -C <comment> -f <.ssh/id_rsa>
ssh-add -K <path to ssh key>
キーチェーンパスワードの入力を求められることはもうありません。
ssh-add
SSH内部から呼び出す場合は、security unlock-keychain
最初に呼び出す必要があることに注意してください。また、-f
パラメータのディレクトリを作成する必要はありませんでした。残念ながら、私はまだ呼び出す必要がありましたsecurity unlocl-keychain
...パスワードを毎回入力を求めログインキーチェーンにアクセスするために、SSHセッションで
上記がすべて機能しなかったすべての人にとって、私の問題は、すべてのsshキープロファイル/ショートカットでUseKeychain yes
&AddKeysToAgent yes
を複製していたためであったようです。~/.ssh/config
これらを一度だけ宣言するようにファイルを更新しました。これらはすべて、起動時にパスワードを要求することなくログイン時にロードされます。
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