我有一个远程服务器,比如1.2.3.4
正在运行一个docker容器,它正在为docker主机上的端口49222提供SSHD服务,所以要手动连接到它:
workstation$ ssh 1.2.3.4 -t "ssh root@localhost -p 49222"
并到达docker容器SSH命令提示符root@f383b4f71eeb:~#
如果我运行一个触发run('ssh root@localhost -p 49222')
的结构命令,那么我会被要求输入root密码。但是它不接受我知道正确的root密码,所以我怀疑密码提示来自主机而不是docker容器。
答案 0 :(得分:0)
我在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_config
中,我需要设置:
AllowAgentForwarding yes
此外,output_prefix=False
对于删除结构添加到每行开头的[hostname] run:
前缀很有用,这对于远程shell的每一行都相当烦人。