Windows で tortoisehg を使用して SSH プロキシ経由でリモート Mercurial リポジトリにアクセスする

Windows で tortoisehg を使用して SSH プロキシ経由でリモート Mercurial リポジトリにアクセスする

サーバー上にリモート 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

システム管理の前提については、この投稿の最後に記載されています。

  1. putty、plink、pageant、puttygenをダウンロードしてインストールします。ここ
  2. SSH キーがない場合は、puttygen を起動して以下を実行します。
    1. Linux で生成されたキーがすでにある場合:
      1. 「既存の秘密鍵ファイルを読み込む」を選択
      2. 適切なファイルを選択してください(ファイル拡張子フィルターを変更する必要があります)
      3. パスフレーズを入力してください
      4. 「秘密鍵を保存」を選択
    2. それ以外、
      1. 「キーを生成」を選択
      2. マウスをランダムに動かす
      3. 「秘密鍵を保存」を選択
      4. 「公開鍵を保存」を選択
  3. システム管理者に秘密鍵ではなく公開鍵を送信してください。(システム管理者の方は下記をお読みください)
  4. Windows コマンド プロンプト (スタート > 実行で「cmd」と入力) を実行し、「pageant.exe」を起動します。
  5. アイコンバーのアイコンを右クリックし、「キーを追加」
  6. 以前に保存した秘密鍵を選択し、パスフレーズを入力します
  7. 発射パテ

    1. ホスト名に次の値を入力してください: リポジトリサーバーのIPアドレス
    2. セッションを ' remote-dev' として保存します (任意の名前でかまいません)
    3. 接続 > プロキシに移動
    4. プロキシタイプとして「ローカル」を選択してください
    5. プロキシホスト名: ファイアウォールのDNSエントリまたはIPアドレス
    6. ポート: 22(またはファイアウォールに SSH 接続するのに適切なポート)
    7. ユーザー名: hg(または、ファイアウォール上で .ssh/authorized_files に公開 SSH キーを持っているユーザー)
    8. 'telnet コマンドまたはローカル プロキシ' の内容を ' FULLPATH\plink.exe -v -nc %host:%port %user@%proxyhost' に置き換えます (実行可能ファイル plink.exe のフル パスを使用してください。例: c:\plink.exe)
    9. 接続 > データに移動
    10. 自動ログインユーザー名: hg (またはリポジトリサーバー上で hg-gateway を実行しているユーザー)
    11. 「セッション」に戻る
    12. セッションを保存するには「保存」をクリックしてください
    13. 「開く」をクリック
    14. 次のようなものが表示されるはずです

      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:
      
  8. 今すぐダウンロードしてインストール

  9. tortoisehgワークベンチを起動する
  10. ファイル > リポジトリのクローン
  11. ソース: ssh:// remote-dev/ repo-name(remote-dev は、putty でセッションに付けた名前と一致する必要があります)
  12. 目的地: 地元の目的地を選択してください
  13. 「クローン」をクリック
  14. それでおしまい。

ユーザーにリモート リポジトリへのアクセスを許可するには:

  1. ファイアウォール上の.ssh/authorized_keysユーザーに公開SSHキーを追加するhg
  2. hg-gatewayそのユーザーのキーをhgサーバー上のユーザーに追加するために使用します

注意: putty は .ppk 形式でキーを生成する傾向があるため、ワンライナーの ssh キーに変換する必要があります。ここでは Google が役に立ちます。

前提:

  1. ファイアウォールには ' hg' という名前のユーザーがおり、その.ssh/autorhized_keysファイルにはリポジトリにアクセスする必要があるすべてのユーザーの公開鍵が含まれています。
  2. ファイアウォールのファイル /etc/ssh/sshd_config には、次のような行が含まれています。

    Match Group dev
        ForceCommand nc -q0 reposerver_ip 22
    

    そのため、ユーザーは接続先のホストを指定できません。ユーザー ' hg' は明らかに UNIX グループ ' dev' に属しています。

関連情報