web-dev-qa-db-ja.com

SSH ForwardAgentの複数のホップ

私はこの2時間、運が悪かった次の問題の解決策を探していました。

開発:

サーバーへの接続に公開鍵認証を使用しています。公開鍵/秘密鍵を管理する必要がないように、ssh-agent転送を使用しています。

サーバーA, B and Cがあるとします。

LOCAL ---> A ---> Bから接続すると、これは非常にうまく機能します。

LOCAL ---> A ---> Cを実行すると、非常にうまく機能します。

さて、LOCAL ---> A ---> B ---> Cを試しても、SSHはB to Cから接続できません。

注目に値する:流動性としてサーバーAに接続し、ルートとしてサーバーBに接続します。流動性としてサーバーBに接続すると問題が解決しますが、これは私には選択肢ではありません。

ユーザーの推奨に従い、毎回ssh -Aを使用して、エージェント転送が有効になっていることを確認しています。

同様の質問が1つ見つかりましたが、ここでは回答がありません: ssh-agentの転送を複数のホップでチェーンすることは可能ですか?

@Zoredacheによると: https://serverfault.com/a/561576/45671 各中間システムでクライアント構成を調整するだけです。私はそう思った。

15
liquidity

エージェント転送が複数のホップを介して動作するようにするには、エージェント転送が行われるように、各中間システムでクライアント構成を調整する必要があります。

これは、/etc/ssh/ssh_configにこれが設定されていることを確認するのと同じくらい簡単です。ただし、~/.ssh/configにクライアントごとの構成がある場合は、それらの設定も調整する必要がある場合があります。

Host *
    ForwardAgent yes

-vオプションを追加するだけで、エージェント転送が発生したかどうか、またはエラーが発生したかどうかを確認できます。

$ ssh -v issc@server1
OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /home/zoredache/.ssh/config
...
debug1: Requesting authentication agent forwarding.
debug1: Sending environment.
Linux server1 3.11-0.bpo.2-AMD64 #1 SMP Debian 3.11.8-1~bpo70+1 (2013-11-21) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Dec 15 20:39:44 2013 from 10.2.4.243
issc@server1:~$

また、有効な環境変数が設定されていることを確認してください。

issc@server1:~$ export | grep SSH_AUTH
declare -x SSH_AUTH_SOCK="/tmp/ssh-7VejOmKtNv/agent.57943"
13
Zoredache