1

我正在将站点部署到服务器,但我办公室的端口 22 被阻止。我现在可以使用corkscrew指令ssh_config ProxyCommand,一切正常,只需使用$ ssh my_server_alias_in_sshconfig.

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

有什么帮助吗?

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

问候

4

2 回答 2

1

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

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

然后$ ssh somebox首先让它保持打开状态,然后$ fab -H somebox deploy流量将通过袜子,因此它会尊重 ProxyCommand。

于 2013-03-11T09:26:52.100 回答
1

目前,我设置了一个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_server_using_corkscrew并让它保持打开状态。
  • 在 fabfile 中,主机名始终为localhost,因此在一次部署到多个服务器时可能会出现问题。

我正在使用这个时间,但是,这可以改进吗?

于 2012-04-18T20:06:07.997 回答