0

ファイアウォールの背後にあるクラスターでホストされているGITリポジトリにアクセスしようとしています。キャンパス(ファイアウォールの背後にある)にいるときは、クラスターに直接アクセスでき、キャンパス外から特定のマシンにSSHで接続し、必要に応じてクラスターにSSHで接続できます。

私は以下を使用してトンネルを設定しようとしました:

sudo ssh -L 9418:cluster:9418 username@ssh.server

しかし、それでも自分のマシンから「gitpush」を実行することはできません。私は何かが欠けていることを知っていますが、それを完全に理解することはできません。

編集:私は〜/ .ssh /configを次のように変更しました:

Host cluster
     NoHostAuthenticationForLocalhost  yes
     Hostname localhost
     Port 9418

git pushを実行するとエラーが発生します:

ssh_exchange_identification: Connection closed by remote host
fatal: The remote end hung up unexpectedly
4

2 に答える 2

3

Git リモート URL のホスト名の部分はclusterlocalhost. の出力はgit config remote.origin.url何ですか? 次のような場合:

git://cluster/repo.git

次に、次のように変更します。

git://localhost/repo.git

ssh ポート フォワーディングのしくみは、ssh クライアントがローカル マシンのポート (この場合は 9418) を開き、接続をリッスンすることです。アプリがそのポートに接続するたびに、ssh クライアントは ssh サーバー (この場合) に、トンネルのリモート側 (この場合はポート 9418 ssh.server) への接続を開くように要求します。clusterローカル ポートに送信されたすべてのデータは、既存の ssh セッションを介して ssh サーバーに転送されます。次に、ssh サーバーは、宛先マシンへの接続にデータを挿入します。したがって、あなたの観点からは、ローカル マシンに接続していることになります。宛先の観点からは、ssh サーバーから接続しています。

また、あなたの ssh 設定は正しくないようです。その構成は、名前の付いたマシンに ssh するときはいつでも、cluster代わりにlocalhostポート 9418 に接続する必要があることをクライアントに伝えます。指定した ssh コマンドによると、localhost ポート 9418 が のポート 9418 に転送されています。 の ssh サーバーは本当にリッスンしていますかcluster?clusterデフォルトのポート 22 の代わりにポート 9418 で?私clusterは、実際にはポート 9418 で Git サーバーを実行していると推測しています。この場合、ssh 構成をまったく変更する必要はありません。

于 2011-06-18T18:43:58.653 に答える
0

それは一般的にうまくいくはずなので、かなり奇妙です:これは役に立ちますか? ssh 構成ビットが配置されていますか?

于 2011-06-18T15:22:29.343 に答える