python - Fabric :如何双隧道

标签 python ssh fabric

情况: 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/

相关文章:

python - 为什么当我将光标传递给 StreamingHttpResponse 时,我的光标在生成器函数中已关闭?

java - JSch 无法运行命令,它是别名并返回 KSH : not found

python - 是否可以使用 Fabric 将命令传递到交互式 shell?

python - 如何将变量添加到我从中导入的模块?

python - MinMax 缩放目标

python - 在Python中使用Dask并行运行函数

python - 计算数据框中某些数字集的平均值(Pandas,Python3)

ubuntu - SSH 进入 tutum 节点

deployment - 使用Grunt和rsync将远程文件夹与本地文件夹同步

python - 如何将自定义选项传递给 fab 命令