2

server2 に server1 からしかアクセスできない場合、ssh を 2 回行うにはどうすればよいですか?

fabfile.py:

from fabric.api import run
from fabric.api import env

env.hosts = ['host@server1.com']

env.use_ssh_config = True

def dothis():
    run('ssh host@server2.com')
    run('ls -al') # this should be done on host@server2.com

私が実行すると:

fab dothis、私は得る:

[host@server1.com] Executing task 'dothis'
[host@server1.com] run: ssh host@server2.com
[host@server1.com] out: Permission denied (publickey).
[host@server1.com] out: 
[host@server1.com] out: 

Fatal error: run() received nonzero return code 255 while executing!

Requested: ssh host@server2.com
Executed: /bin/bash -l -c "ssh host@server2.com"

Aborting.
Disconnecting from host@server2.com... done.

server1 に別のファブリック ファイルを保持せずに、server2 でファブリックに env.user_ssh_config = True を指示するにはどうすればよいですか?

私が通常 server2 にアクセスする方法は次のとおりです。

ssh host@server1.com ssh host@server2.com
4

1 に答える 1

1

" " を " " およびおそらく他のホストserver1.comとして使用しようとしているようです:gatewayserver2.com

from fabric.api import run
from fabric.api import env

env.gateway = 'host@server1.com'
env.hosts = ['host@server2.com']

env.use_ssh_config = True

def dothis():
    run('ls -al')  # this should be done on host@server2.com
于 2013-10-07T15:06:39.697 に答える