ssh -Aは認証エージェント接続の転送を適切に有効にしません


22

が大好きssh -Aで、リモートサーバーから接続を確立するときにローカルsshキーを使用できます。たとえば、私ssh -A host1.example.comはそこからssh host2.example.com(またはgitを使用して)元のマシンのsshキーを使用します(この場合、これは私のMacである必要があります)。これはDebian / Ubuntuでは常に機能していましたが、新しいMac(Lion)では機能しません。

ここに何が欠けていますか?-Aで正しく動作するようにsshを構成するにはどうすればよいですか?標準のMacOSではないsshが必要ですか?

回答:


33

実際には、非常に簡単な答えは、実行する必要があるということです

ssh-add

そしてそれはすべて動作します。

基本的に、macOSにはすでにssh-agentがセットアップされていますが、再起動するたびにキーを追加する必要があります。ssh-addは、ssh-agentが現在のブートサイクルのキーにアクセスできるようにします。秘密鍵を作成した場合は、秘密鍵のパスワードを入力する必要があります。


macOSにアップグレードした後、私の最新のssh転送の問題を解決しました(5年後、まだ有用な回答、@ rfayに感謝します)
23tux

これは機能しますが、なぜこのコマンドを覚えるのが役立つか、人々がこのコマンドを覚えるのに役立つ理由の説明があります。
アダムパーキン

2
@AdamParkinは、説明する別の段落を追加しました。
-rfay

1

背後にssh -Aある概念はsshエージェントです。これらはバックグラウンドで実行され、環境変数を使用して、sshを使用して他のマシンにログインするときに、エージェントを見つけて認証に自動的に使用できます。詳細については、ssh-agentのマンページをご覧ください。

Mac OS Xでは、ssh-agentはオンデマンドで起動する必要があります。

詳細については、以下を参照してください。


1

OS X 10.8以降、これを1回行う必要があります。

sudo touch /var/db/useLS

そして、これをあなたの一部として追加してください~/.bash_profile

if [ -f ~/.ssh/id_rsa ]; then
    ssh-add -K ~/.ssh/id_rsa 2>/dev/null
fi

注:このレシピは、私のベドウィンスクリプトの一部です。


うーん、これを試してみました。その後、エージェントは起動しますが、ssh-addで何かを動作させる必要があります。したがって、私が理解している限り、ssh-addだけで解決できます。.bash_profileに追加する必要があると思います。
rfay

秘密鍵にパスフレーズが必要な場合はどうすればいいですか?
Jeffrey04
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.