jumphost経由でリモートマシンにsshする必要があります。私はこのように行うのssh使用paramikoを使用してssh-agentを複数のホップに追加する方法
:私はちょうどいくつかのコマンドを実行したい場合はjumphostのssh -Aユーザーの@ vm_to_login
@ のssh -A -tユーザーは、私が実行します。ユーザー-t のssh -Aを@
をjumphostのssh -Aユーザーの@ vm_to_login「実行するコマンドは、」今私は、Pythonを使ってこれをやってみました:私は、上記のスクリプトを実行すると、プログラムが無限の時間のためにぶら下がっている
def ssh_connect(jumphost_ip):
ssh_client=paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
path_to_key=os.path.join(os.environ['HOME'], '.ssh', 'id_rsa')
ssh_client.connect(jumphost_ip, username='vagrant', key_filename=path_to_key, allow_agent=True)
return ssh_client
ssh_client = ssh_connect(host_ip)
stdin, stdout, stderr = ssh_client.exec_command("""ssh [email protected]_to_run_command -A "docker network inspect --format '{{json .Containers }}' bridge" """, get_pty=True)
..私はちょうど推測しますSSHClientオブジェクトはキーを追加できませんsshエージェントと2番目のサーバーがキーを探すとき、キー要求はジャンプボックスに移動し、ジャンプボックスからローカルに移動しますが、SSHClientオブジェクトにはそれらのキーがあります。
これ以上の情報が必要な場合はお知らせください。