Python 如何从Fabric run命令中启动SSH连接
我有一个远程服务器,比如说Python 如何从Fabric run命令中启动SSH连接,python,ssh,fabric,Python,Ssh,Fabric,我有一个远程服务器,比如说1.2.3.4,它运行一个docker容器,该容器为docker主机上映射到端口49222的SSHD提供服务,因此要手动连接到它,我将执行以下操作: workstation$ssh 1.2.3.4-t“sshroot@localhost-p 49222“并到达docker容器SSH命令提示符root@f383b4f71eeb:~# 如果我运行一个fabric命令触发run('sshroot@localhost-p 49222')然后我被要求输入根密码。但是,它不接受我知
1.2.3.4
,它运行一个docker容器,该容器为docker主机上映射到端口49222的SSHD提供服务,因此要手动连接到它,我将执行以下操作:
workstation$ssh 1.2.3.4-t“sshroot@localhost-p 49222“
并到达docker容器SSH命令提示符root@f383b4f71eeb:~#
如果我运行一个fabric命令触发
run('sshroot@localhost-p 49222')
然后我被要求输入根密码。但是,它不接受我知道是正确的根密码,因此我怀疑密码提示来自主机,而不是docker容器。我在我的fabfile.py
中定义了以下任务:
@task
def ssh():
env.forward_agent = True
run('ssh root@localhost -p 49222')
with settings(output_prefix=False, forward_agent=True):
run('ssh root@localhost -p 49222')
在远程服务器sshd\u config
中,我需要设置:
AllowAgentForwarding yes
此外,output\u prefix=False
有助于删除结构添加到每行开头的[hostname]run:
前缀,这对于远程shell的每一行来说都相当烦人