web-dev-qa-db-ja.com

sshトンネルを使用してSubversionのプロキシを設定するにはどうすればよいですか?

ローカル接続が遅いため、プロキシ経由でコードをチェックアウト/更新したいのですが。私はsshトンネルをセットアップしました:ssh -D 8090 [email protected]すべてのパケットを私のlocalhost:8090に転送します。

これを使用するようにSubversionを設定するにはどうすればよいですか?

24
okidogi

SSHを使用して、SSHサーバーにトンネルするローカルSOCKSサーバーを設定しています。これを行う理由は「ローカル接続が遅い」ということですが、SSHサーバーへのトンネリングによってどのように高速になるかはわかりません。

とにかく、あなたの問題は、SubversionがHTTPプロキシまたはSSHトンネルを介して接続できることですが、SOCKSについては何もわかっていません。したがって、すべてのTCP接続をキャプチャしてSOCKSプロキシにリダイレクトすることにより、SubversionをSOCKSifyする必要があります。

以前に行ったことのある人を言い換えるのではなく、詳細な説明を紹介します。

または、簡単に言えば、ほとんどがOliverのページから貼り付けられています。

Debianには、sourceforgeでも入手可能な2つのsocksifiersが含まれています。最近更新されたのはProxyChainsで、設定は非常に簡単です。ほとんどの靴下は同じように機能するので、これらの指示は合理的な一般的なケースであるべきです。 ProxyChainsを設定するには、$(HOME)/。proxychains/proxychains.confを編集して、次の行のみを含める必要があります。

DynamicChain
tcp_read_time_out 15000
tcp_connect_time_out 10000
[ProxyList]
socks5 127.0.0.1 8090
# NB: for some reason 'localhost' doesn't work in the above line

次に、SVNをProxyChainsに「ラップ」するだけです。

proxychains svn commit

上記の例では、svnアプリケーションは、TCPがSubversionサーバーに接続するときに、SOCKSプロキシにリダイレクトされた方が賢明でした。 "

21

ここに投稿します。これを行うには、あまりやる気のない方法が見つかりました。 Polipo を使用して、次の行を構成に追加することにより、SSH SOCKSトンネルをHTTPプロキシ経由で使用できます。

socksParentProxy = "localhost:8090"
socksProxyType = socks5

polipoデフォルトではポート8123でリッスンします。次に、$HOME/.Subversion/serversで、チェックアウトするSubversionホストのグループを作成します。 Subversionリポジトリのホストの名前がproj1.svn.domain.tldproj2.svn.domain.tldなどである場合は、[groups]セクションに以下を追加します。

[groups]
domain = *.svn.domain.tld

最後に、グループのブロックを追加して、追加したホストのグループのプロキシ構成を指定します。

[domain]
http-proxy-Host=localhost
http-proxy-port=8123

これまでは、SSHトンネルなしで作業していたので、通常はリポジトリを操作できるはずです。

HTH

2
Ashish SHUKLA

ssh -Dでのトンネリングについては知りませんが、次のようなものを使用しています

ssh -L8090:svn.server.com:22 [email protected]

次に、トンネルが存在する特定のポートを使用して新しいプロトコルをSubversionに追加することにより、トンネリングを実行できます。したがって、〜/ .Subversion/configに次のような行を追加します

pssh = ssh -p8090

[tunnels]セクションで、svn + ssh://[email protected]の代わりにsvn + pssh:// user @ localhostを使用します

既存の作業コピーがある場合は、使用できます

svn switch --relocate svn+ssh://[email protected] svn+pssh://user@localhost

新しいチェックアウトを行わずに、作業コピーがリンクされているアドレスを切り替える。

1
blahdiblah

〜/ .Subversion /にあるデフォルトの設定ファイルを見てください。コメントアウトされた多くの便利な例があります。プロキシは〜/ .Subversion/serversに設定されます

1
Gleb

Windows PCでsocksプロキシサーバーを介してSVNリポジトリへのsvn + ssh接続を取得する必要がある場合があります。この問題は、SSH機能を提供し、さまざまなプロキシタイプで動作するPuTTYで解決できます。提案されたソリューションは、ローカルポート転送を必要としません。

  1. PuTTYを起動してセッションを作成します(例:socks_proxy)
  2. 設定[〜#〜] only [〜#〜]セッションのプロキシ(接続->プロキシ)送信が必要な場合プロキシホスト名およびポート。 PuTTYは、SOCKS4とSOCKS5の両方を含むさまざまなプロキシタイプの選択で機能します。オプションで、プロキシアクセス用にユーザー名パスワードを指定できます。
  3. セッションを保存します。セッションには接続用の構成済みホスト名がないことに注意してください。
  4. SVN構成ファイルApplication Data\Subversion\configを開き、セクション[tunnels]を見つけます
  5. セクションタイトルの下にSVNプロトコルの説明を追加します。 ssh = PATH_TO_PLINK/PLINK.EXE -load socks_proxy。実際にはプロトコル名が選択されるため、sshがすでに使用されている場合は任意の名前を選択できます(たとえばssh =の代わりにpss​​h =を使用します) )。
  6. SSHを使用してsvnserveを実行するターゲットサーバーへのSSHアクセスのキーを設定します。キーを維持するためにページェントを使用することをお勧めします。
  7. Svn + sshアクセスにはsvnを使用します。ユーザー名はURLで渡す必要があります- svn ls svn + protocol_name:// username @ server/repository プロトコル名は、SVN構成の[tunnels]セクションで使用されている実際の名前に置き換える必要があります。

解説-SVNはプロトコル名を使用して、plink.exeを接続に使用し、plinkはセッション名を使用することを検出します socks_proxy そのプロキシが存在することを識別するため。覚えて PATH_TO_PLINK バックスラッシュではなくスラッシュで入力する必要があります。 plink.exeがC:\ Program Files\PuTTYフォルダーにある場合の例: ssh = C:/ Program Files/PuTTY/PLINK.EXE -load socks_proxy

1
Montall

tsocks を試してみてください。 tsocksを使用して、SOCKSプロキシを使用するように構成し、SSHを設定してから、次のようにsvnを実行します。

tsocks svn co {etc...}
1
Xorlev