如果 server2 只能从 server1 访问,我如何 ssh 两次?
fab文件.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
当我运行时:
做得很好,我得到:
[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.
如何在服务器 2 上告诉结构 env.user_ssh_config = True 而不在服务器 1 上保留另一个结构文件?
我平时访问server2的方式是这样的:
ssh host@server1.com ssh host@server2.com
请您参考如下方法:
看起来您正在尝试将“server1.com”用作 gateway托管到“server2.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
