0

私の研究所では、プロキシを介したインターネットアクセスのみが制限されています。gerritコードレビューシステム(git.eclipse.org)へのssh接続を確立する際にいくつかの深刻な問題に直面しているため、Gerritに新しいパッチをプッシュできません。

上記のタスクを実行するために、私は最初に、ここに与えられた指示に従って、コルク栓抜きを使用してHTTP経由でSSHをトンネリングしようとしまし た:これは私がしたことです:

  1. 取り付けられた栓抜き
  2. ssh設定にProxyCommandを追加しました
  3. ファイル〜/ .ssh/proxyauthにプロキシユーザー名とプロキシ認証パスワードを追加しました

この後、githubに接続するsshのセットアップに成功し、githubリポジトリへの変更をプッシュ/プルしました。

しかし、sshを介してgerritに接続することはできません。正確なエラーは次のとおりです。

$ssh -p 29418 jgupta@git.eclipse.org
Proxy could not open connnection to git.eclipse.org:  Forbidden
ssh_exchange_identification: Connection closed by remote host

Linux(RHEL 6.3 Beta x86_64)とgit 1.7.11.1(最新)を使用しています。
私の〜/ .ssh/configの内容は次のとおりです。

Host github.com
  Hostname ssh.github.com
  Port 443
  ProxyCommand corkscrew 202.141.80.22 3128 %h %p ~/.ssh/proxyauth

Host *
  ProxyCommand corkscrew 202.141.80.22 3128 %h %p ~/.ssh/proxyauth

git.eclipse.orgへのsshリクエストの詳細な(エラー)結果は次のとおりです。

penSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /home/jayant/.ssh/config
debug1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Executing proxy command: exec corkscrew 202.141.80.22 3128 git.eclipse.org 29418 ~/.ssh/proxyauth
debug1: permanently_drop_suid: 500
debug1: identity file /home/jayant/.ssh/identity type -1
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug2: key_type_from_name: unknown key type 'Proc-Type:'
debug2: key_type_from_name: unknown key type 'DEK-Info:'
debug2: key_type_from_name: unknown key type '-----END'
debug1: identity file /home/jayant/.ssh/id_rsa type 1
debug1: identity file /home/jayant/.ssh/id_dsa type -1
Proxy could not open connnection to git.eclipse.org:  Forbidden
ssh_exchange_identification: Connection closed by remote host

私のgitリポジトリに設定されているリモートURLは次のとおりです。

$git remote -v
origin  http://git.eclipse.org/gitroot/etrice/org.eclipse.etrice.git (fetch)
origin  http://git.eclipse.org/gitroot/etrice/org.eclipse.etrice.git (push)
review  ssh://jgupta@git.eclipse.org:29418/etrice/org.eclipse.etrice.git (fetch)
review  ssh://jgupta@git.eclipse.org:29418/etrice/org.eclipse.etrice.git (push)

数日前、インターネットに直接アクセスしたとき、上記のリモート設定を使用して、ssh経由で接続し、パッチをプッシュすることもできました。

known_hostsの内容を削除しようとしましたが、役に立ちませんでした。
これはgerritサーバーの問題ですか?

よろしくお願いします。

4

1 に答える 1

0

この問題は、サポートされていないサーバー構成が原因であると感じています。これは、ウェブ上のブログ投稿で見つけたものです。

基本的な考え方は、socat (コルク抜きに似たユーティリティ) を何らかの方法で呼び出すことです。これは、CONNECT メソッドを使用して HTTP(S) プロキシ サーバーとネゴシエートし、相手側のサーバーへのクリーンなパイプを取得します。
...
多くの企業のファイアウォールが 443 以外のポートでの CONNECT メソッドへのアクセスをブロックしていることに注意してください。必要に応じて、上記の ssh config スタンザのホスト名とポート、そしてすべての設定が完了しました

上記の抜粋はhereから取得されました。

私が感じているのは、gerrit はポート 29418 で実行されており、プロキシは通常、リモート ホスト (サーバー) のポート 443 での要求に対してのみ CONNECT メソッドへのアクセスを許可するため、gerrit の ssh 要求はプロキシでネゴシエートできません。

github ではポート 443 で ssh 要求を処理し、クライアント ユーティリティ (コルク抜きなど) はリモート サーバーのポート 443 で送信要求を送信することでプロキシをネゴシエートできるため、これは発生しません (上記の .ssh/config のスナップショットで行われたように)。 .

上記のタスクを実行するための他の方法を知っている人はいますか?

于 2012-07-28T12:11:39.460 に答える