
サーバー上にリモート Mercurial リポジトリ (hg-gateway によって管理) があります。そのサーバーへのアクセスは一般に公開されていませんが、ファイアウォールによって SSH プロキシが許可されています。
tortoisehg を使用してそのリポジトリにアクセスするように Windows クライアントを構成するにはどうすればよいでしょうか?
これはこれ、その質問ではプロキシは関係ありません。私はWindowsの同等のものを探しています
Host remote-dev
user mercurialuser
ProxyCommand ssh -q firewalluser@firewall
次のようなMercurialリポジトリにアクセスするために
hg clone ssh://remote-dev/repo
有効な解決策を見つけたので、コミュニティの利益のために以下の回答に投稿します。
答え1
システム管理の前提については、この投稿の最後に記載されています。
- putty、plink、pageant、puttygenをダウンロードしてインストールします。ここ
- SSH キーがない場合は、puttygen を起動して以下を実行します。
- Linux で生成されたキーがすでにある場合:
- 「既存の秘密鍵ファイルを読み込む」を選択
- 適切なファイルを選択してください(ファイル拡張子フィルターを変更する必要があります)
- パスフレーズを入力してください
- 「秘密鍵を保存」を選択
- それ以外、
- 「キーを生成」を選択
- マウスをランダムに動かす
- 「秘密鍵を保存」を選択
- 「公開鍵を保存」を選択
- Linux で生成されたキーがすでにある場合:
- システム管理者に秘密鍵ではなく公開鍵を送信してください。(システム管理者の方は下記をお読みください)
- Windows コマンド プロンプト (スタート > 実行で「cmd」と入力) を実行し、「pageant.exe」を起動します。
- アイコンバーのアイコンを右クリックし、「キーを追加」
- 以前に保存した秘密鍵を選択し、パスフレーズを入力します
発射パテ
- ホスト名に次の値を入力してください: リポジトリサーバーのIPアドレス
- セッションを '
remote-dev
' として保存します (任意の名前でかまいません) - 接続 > プロキシに移動
- プロキシタイプとして「ローカル」を選択してください
- プロキシホスト名: ファイアウォールのDNSエントリまたはIPアドレス
- ポート:
22
(またはファイアウォールに SSH 接続するのに適切なポート) - ユーザー名:
hg
(または、ファイアウォール上で .ssh/authorized_files に公開 SSH キーを持っているユーザー) - 'telnet コマンドまたはローカル プロキシ' の内容を '
FULLPATH\plink.exe -v -nc %host:%port %user@%proxyhost
' に置き換えます (実行可能ファイル plink.exe のフル パスを使用してください。例: c:\plink.exe) - 接続 > データに移動
- 自動ログインユーザー名: hg (またはリポジトリサーバー上で hg-gateway を実行しているユーザー)
- 「セッション」に戻る
- セッションを保存するには「保存」をクリックしてください
- 「開く」をクリック
次のようなものが表示されるはずです
Using username "hg". Authenticating with public key "imported-openssh-key" from agent Welcome to XXX code repository server! Your SSH access is restricted by hg-gateway. Summary of repos you have access to:
今すぐダウンロードしてインストール亀
- tortoisehgワークベンチを起動する
- ファイル > リポジトリのクローン
- ソース: ssh://
remote-dev
/repo-name
(remote-dev は、putty でセッションに付けた名前と一致する必要があります) - 目的地: 地元の目的地を選択してください
- 「クローン」をクリック
- それでおしまい。
ユーザーにリモート リポジトリへのアクセスを許可するには:
- ファイアウォール上の
.ssh/authorized_keys
ユーザーに公開SSHキーを追加するhg
hg-gateway
そのユーザーのキーをhg
サーバー上のユーザーに追加するために使用します
注意: putty は .ppk 形式でキーを生成する傾向があるため、ワンライナーの ssh キーに変換する必要があります。ここでは Google が役に立ちます。
前提:
- ファイアウォールには '
hg
' という名前のユーザーがおり、その.ssh/autorhized_keys
ファイルにはリポジトリにアクセスする必要があるすべてのユーザーの公開鍵が含まれています。 ファイアウォールのファイル /etc/ssh/sshd_config には、次のような行が含まれています。
Match Group dev ForceCommand nc -q0 reposerver_ip 22
そのため、ユーザーは接続先のホストを指定できません。ユーザー '
hg
' は明らかに UNIX グループ 'dev
' に属しています。