web-dev-qa-db-ja.com

SSHエージェント転送に追加の構成が必要ですか?

このガイド は、ssh-agentが複数のシステムでどのように機能するかを説明する素晴らしい仕事をします。最後の一連の図にあるように転送を設定したいのですが、そのために必要な手順を追跡できません。

ネットワーク上のsomeマシンの場合、証明書のパスワードを入力せずに、AからB、次にBからCにSSHで接続できます。ただし、他のマシンは、「認証エージェントへの接続を開けませんでした」(ときどき!)を与え、私の認証情報を転送しません。これらのマシンの1つからネットワーク上の別のボックスにSSHで接続すると、秘密鍵のパスワードをもう一度要求されます。

これらのマシンは作成しませんでしたが、一部は管理できます。私は、boxenが機能するものと機能しないものとの違いが何であるかわかりません-ファイアウォールの問題、ssh/ssh-agent/sshdの設定、なんらかの原因で、ステップが表示されません- forwardingに固有の段階的なガイドは、ネット上を浮遊します。私は、この問題を追跡し始める場所を知る必要があるだけです。

21
Coderer

SSHエージェント転送は、クライアント(~/.ssh/configForwardAgentオプション)およびサーバー(sshd_configAllowAgentForwardingオプション)で許可する必要があります。お使いのマシンでは、これらのオプションの一方または両方に対して異なるデフォルト設定が使用されている可能性があります。

A-> B-> Cの場合は、B-> Cステップで転送する必要はありません(もちろん、C-> Dに移動する場合を除きます)。

Bにログインしたら、環境変数SSH_AUTH_SOCKが定義されていることを確認します。その値は、sshがエージェントに連絡する方法を知る方法です。

エージェント転送によってクライアントがサーバーに対して脆弱ではなく、その逆に脆弱になること、および原則としてエージェント転送を手動で設定できることを考えると、サーバーでのエージェント転送を禁止する正当な理由はありません(ただし、それほど多くのポイントはないため、設定が難しいため、エージェント転送の利便性が損なわれます)。

上記の@Gillesによる回答はすでに正しいですが、AllowAgentForwardingはOpenSSH 5.1以降でのみサポートされていることを指摘しておきます。

5.1以前のOpenSSHサーバーでは、RHEL 4u5ボックスで確認したものから、エージェント転送をデフォルトで許可しています。したがって、サーバーが5.1より古く、エージェント転送が機能していない場合、問題はsshクライアントにある可能性があります。一部のマシンでは転送が機能しているようですので、/etc/ssh/ssh_configは問題なく設定されています。小切手 ~/.ssh/config影響を受けるボックスのエージェント転送を無効にするために行われた例外があるかどうかを確認します。

参照: http://www.openssh.org/txt/release-5.1

14