情况: A 和 B 是远程主机。 本地机器可以 SSH 进入 A,但不能进入 B。 B 只接受来自 A 的 SSH 连接。
问题: 是否可以在本地机器上使用fabric在主机B上执行命令,最好不用在A上安装fabric?
最佳答案
我设法通过 env.gateway 实现了这一点如下:
from fabric.api import *
env.forward_agent = True
env.gateway = 'user@remote_MachineA'
env.hosts = ['user@remote_MachineB']
def function1():
run('hostname')
env.forward_agent = True
仅用于启用将本地 SSH 代理转发到远程端
或者,您可以使用 ssh ProxyCommand,example here并通过 use_ssh_config = True
告诉fabric 使用您的~/.ssh/config
,文档here
关于python - Fabric :如何双隧道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6161548/