如何使用ssh#u config';ProxyCommand和螺旋塞?

如何使用ssh#u config';ProxyCommand和螺旋塞?,proxy,ssh,firewall,fabric,Proxy,Ssh,Firewall,Fabric,我正在将站点部署到服务器,但我办公室的端口22被阻塞。现在,我可以使用ssh\u configProxyCommand指令使用corkscrew,一切正常,只需使用sshconfig中的$ssh my\u server\u alias\u进行连接即可 现在我需要使用Fabric来简化部署,但即使在设置env.use\u ssh\u config=True时,它也不起作用,它只是查找服务器的IP地址并尝试直接连接,而忽略ProxyCommand和其他所有内容。Fabric文档说它利用了一些可用的配

我正在将站点部署到服务器,但我办公室的端口22被阻塞。现在,我可以使用
ssh\u config
ProxyCommand
指令使用
corkscrew
,一切正常,只需使用sshconfig中的
$ssh my\u server\u alias\u进行连接即可

现在我需要使用Fabric来简化部署,但即使在设置
env.use\u ssh\u config=True
时,它也不起作用,它只是查找服务器的IP地址并尝试直接连接,而忽略
ProxyCommand
和其他所有内容。Fabric文档说它利用了一些可用的配置设置,但没有使用
ProxyCommand
,Fabric在这里似乎没有用处

有什么帮助吗

我得到了这个,但我认为它不能解决
ProxyCommand
需求


关于

目前,我设置了一个
LocalForward
指令,如:

Host my_server_using_corkscrew
    ProxyCommand ...
    ...
    LocalForward 1122 localhost:22
及以下:

Host my_server_using_corkscrew.localtunnel
    Hostname localhost
    Port 1122
然后,使用以下各项运行Fabric:

$ fab my_deploy_command --hosts=my_server_using_corkscrew.localtunnel
这有两个不便之处:

  • 我需要先用开瓶器用
    $ssh my\u server\u启动“隧道”,然后让它保持打开状态
  • 在fabfile中,主机名始终是
    localhost
    ,因此在一次部署到多个服务器时可能会出现问题

我暂时使用它,但是,它可以改进吗?

更好的解决方法,但仍然不完美:

Host somebox
    ControlMaster auto
    ControlPath ~/.ssh/socket/%r@%h:%p

然后
$ssh somebox
先让它保持打开状态,然后
$fab-H somebox deploy
流量将通过sock,因此它将尊重proxy命令。

您能帮助我吗?谢谢分享!对我来说,fabric会选择主机配置,但不使用现有连接。我甚至试着运行一个Fabric任务,它睡了一天,并保持打开状态,但这并没有与其他Fabric进程共享它的连接。