面料:如何加倍隧道

cra*_*rry 17 python ssh fabric

情况:A和B是远程主机.本地机器可以通过SSH连接到A,但不能通过B.B仅接受来自A的SSH连接.

问题:是否可以在本地计算机上使用结构来执行主机B上的命令,最好不必在A上安装结构?

yef*_*iak 12

我设法通过env.gateway实现了以下目标:

from fabric.api import *

env.forward_agent = True
env.gateway = 'user@remote_MachineA'
env.hosts = ['user@remote_MachineB']

def function1():
  run('hostname')
Run Code Online (Sandbox Code Playgroud)

env.forward_agent = True 是否只允许将本地SSH代理转发到远程端

另外,您也可以使用ssh ProxyCommand,这里例如,告诉面料使用您的~/.ssh/config使用use_ssh_config = True,文档在这里


LHM*_*ies 0

我只想回答 SSH 部分:是的,您可以设置一条双隧道 - 一个从本地到 A 的 SSH,从辅助本地端口(如 2121)到 B 上的端口 21,然后您可以通过 SSH到 localhost:2121 并登录 B。我已经用 PuTTY 做过类似的事情。

在 Fabric 中实现这一点留作练习。