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

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

これには2つの不便があります。

  • 最初に「トンネル」を開始し、$ ssh my_server_using_corkscrew開いたままにしておく必要があります。
  • fabfile内では、ホスト名は常にlocalhostであるため、一度に複数のサーバーにデプロイする場合に問題になる可能性があります。

しばらく使っていますが、改善できるのでしょうか?

于 2012-04-18T20:06:07.997 に答える
1

より良い回避策ですが、まだ完璧ではありません:

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

次に、$ ssh somebox最初に開いたままにしておく$ fab -H somebox deployと、トラフィックは靴下を通過するため、ProxyCommandを尊重します。

于 2013-03-11T09:26:52.100 に答える