17

http プロキシ アクセスのみを許可する企業ファイアウォールの背後にあるときに、プライベート (ssh 経由) git リポジトリにアクセス (クローン/プッシュ/プル) したいと考えています。堅牢な Java (デーモン) プログラム (JSCh クラス ライブラリに基づく) を作成して、ローカルおよびリモートのポート フォワーディングを利用できるようにしました。 .

git リポジトリ デポ (造語) は foo.server.com/var/git にあるため、ファイアオールを無視して、クローンをセットアップする自然な傾向は次のようになります。

$ git clone ssh://foo.server.com/var/git/myrepo.git

ただし、ファイアウォールはこのコマンドをブロックします。私は次のようなものを試す傾向があります

$ git clone ssh://localhost:8022/var/git/myrepo.git

localhost:8022 は foo.server.com:22 に転送されます

では、この道を追求する価値はありますか? まだ安全な簡単なソリューションはありますか? 注意すべき落とし穴や落とし穴はありますか?

4

3 に答える 3

40

このようなものを使用socatする.ssh/config

Host=foo.server.com
ProxyCommand=socat - PROXY:your.proxy.ip:%h:%p,proxyport=3128,proxyauth=user:pwd

あなたはすることができるはずsshですfoo.server.comそして

git clone ssh://foo.server.com/var/git/myrepo.git

動作することが期待されます。

于 2011-11-24T10:14:57.713 に答える
8

通常の ssh (コマンドライン) セッションを開始できますか? もしそうなら、gitも動作するはずです。

ssh を使用する場合、git は .ssh/config で構成オプションを取得する必要があります。それでも不十分な場合は、環境変数 GIT_SSH を変更したバージョンの ssh (またはシェル スクリプト ラッパー) に向けることができます。

于 2009-11-13T12:35:00.517 に答える