4

これを機能させようとして、ここで私のナットを割っています。おそらく、誰かがこれをもう少しよく理解するのを手伝ってくれるでしょう。Accessing Subversion repository with 2 hops using svn+ssh protocolと呼ばれる、私がやりたいことのほとんどである質問を見つけました

これが私がやりたいことです:

Live サーバーで svn プロジェクトをチェックアウトしたいのですが、インターネット上で svn サーバーにアクセスできません。そのため、メインのネットワーク サーバーに ssh トンネルを接続し、次に SVN サーバーに接続し、ファイルをライブ サーバーにチェックアウトする必要があります。

わかりやすくするために、いくつかの架空の設定を次に示します。

  1. ライブサーバー: (eth0) 10.123.210.123
  2. ネットワーク サーバー: (eth0) 10.89.123.123 および (eth1) 192.168.1.1
  3. SVN サーバー: (eth0) 192.168.1.8

すべてのサーバーはポート 9222 のキー ファイルで認証され、サーバーには有効なキーを持つユーザー管理者がいます。したがって、管理者はほぼすべてのサーバーから各サーバーにログインできますが、Live は論理的に直接 SVN にアクセスできません。

したがって、上記の投稿の @epsilon-prime によると、Live サーバーに /home/admin/.ssh/config をセットアップする必要があります。

Host mysubversionserver
        HostName = 10.89.123.123
        ProxyCommand = ssh 192.168.1.1 /usr/local/bin/nc -w 10 192.168.1.8 %p
        ForwardX11 = no
        User = admin
        ForwardAgent = yes

このセットアップに接続できないという事実に加えて、これがどのように Subversion サーバーにアクセスするのに役立つのか、よくわかりません。このsshを使用すると、Subversionサーバーにいますが、このトンネルを使用してLiveサーバーにいる必要があります....または、本当に明らかな何かが欠けているだけですか?

4

2 に答える 2

3

それで、何度も読んで、さらに読んだ後、最終的に私の質問に対するいくつかの説明を見つけ、この設定は機能しないことに気付きました。

とにかく質問を閉じて、他の検索魂に役立つ情報を得るには、Linuxで構成ファイルを使用してトンネルを作成する正しい方法を次に示します

Host FireWallServer
        HostName <FireWall Server IP>
        User admin
        IdentityFile ~/.ssh/id_rsa
        PasswordAuthentication no
        Compression yes
        ForwardX11 no

Host SVNServer
        ProxyCommand ssh FireWallServer nc <SVN Server IP> %p
        ForwardAgent yes

man ssh_configには、必要な情報がほとんど含まれていないため、最初の友人はman ssh_configになります。トランスペアレント マルチホップ SSHで見つけた素敵な説明 したがって、最終的な最善の解決策は、ローカル ポート フォワード トンネルを実行することでした。

ssh -L 9223:<SVN Server IP>:80 admin@<FireWall Server IP>

別のターミナルを開き、このトンネルで svn クエリを実行します。

svn info http://localhost:9223/<path to your svn repo>

ただし、この方法を機能させるには、いくつかの必需品が必要です。

  1. すべてのサーバーは、ssh_key を使用してユーザー admin のポート 9222 で ssh を受け入れるように構成する必要があります。
  2. 同じポートを使用するには、すべてのサーバーで ssh デーモンを構成する必要があります。
  3. mod_dav を使用して Apache で実行するように SVN を構成する必要があります

それが誰かに役立つことを願っています:)

于 2011-11-22T16:22:10.120 に答える
0

SVN をプロキシ サーバー経由で機能させるには、Live サーバーの Subversion 構成ファイルに特別な設定が必要になる可能性があります。たとえば、~/.subversion/servers次のようになります。

[global]
http-proxy-host=10.89.123.123
http-proxy-port=9222

あなたの場合、プロキシ サーバーはおそらくライブ システムへの接続に使用するネットワーク サーバーです (不明な点がある場合は、ネットワーク管理者に問い合わせてください)。プロキシ サーバーの背後で wgetなどの他のコマンドを使用してインターネットにアクセスする場合は、環境変数を設定すると便利ですhttp_proxy

于 2011-11-21T14:36:06.373 に答える