すでに同内容記事多数なのですが、自分用メモとして記載します。
お目汚し失礼。

環境

ネットワーク的には下記のようになっています。
リポジトリが置いてあるrepo-serverには、fumidaiからしかsshログインできません。

Untitled.png

  • ローカルWindows PC(Windows 8.1)
  • fumidai 懐かしのTurboLinux
  • repo-server CentOS
  • Windows版Git git version 1.9.5.msysgit.0

準備

WindowsへGitをインストール

chocolateyを使うと簡単です。
chocolateyをインストールしたら、Admin権限のあるコマンドプロンプトでchoco install gitと実行するだけです。

踏み台サーバへconnectをインストール

踏み台サーバは懐かしのTurboLinuxのため、ncもconnectも入っていませんでした。

connect.c からconnect.cをダウンロードします。

ダウンロードしたら踏み台サーバにコピーしてコンパイルします。
gcc -O2 connect.c -o connect

コンパイル成功したら適当なディレクトリにコピーします。
cp connect ~/bin/

Windows環境変数を設定

Windowsの環境変数HOMEを設定します。値は%USERPROFILE%にします。ここに.sshディレクトリを作成します。

homeenv.png

sshを設定

ssh設定ファイルを作成

コマンドプロンプトを起動して、.sshディレクトリを作成します。
mkdir %HOME%\.ssh

configファイルを作成します。
notepad %HOME%\.ssh\config

内容は次のようになります。

config

Host fumidai
  User sengoku
  Hostname fumidai.local

Host repo-server
  User guest001
  Hostname repo-server.example.com
  ProxyCommand "C:\Program Files (x86)\Git\bin\ssh.exe" fumidai /home/sengoku/bin/connect %h %p 

最初のHostfumidaiへログインするための設定です。ユーザ名はsengoku、ホスト名はfumidai.localです。ユーザ名やホスト名は適宜変更してください。

2番目のHostrepo-serverへログインするための設定です。ユーザ名はguest001、ホスト名はrepo-server.example.comです。
fumidai上で/home/sengoku/bin/connectコマンドを起動し、プロキシ動作させています。
ユーザ名やホスト名は適宜変更してください。

sshの設定を確認

sshの設定が正しくできたか、まずは普通にsshしてみます。

コマンドプロンプトからsshを起動しfumidaiへログインしてみます。
"C:\Program Files (x86)\Git\bin\ssh.exe" fumidai
引数のfumidaiはHostに記述したものです。

うまくいったらリモートにもログインしてみます。
"C:\Program Files (x86)\Git\bin\ssh.exe" repo-server

うまくいかないときは、sshに-vオプションをつけてdebug情報を見てみてください。

リモートリポジトリにアクセス

準備が整いましたので、リモートリポジトリからソースを取得します。

git clone ssh://repo-server/~/repos/myproj.git

ここではリポジトリは~/repos/myproj.gitにあります。適宜変更してください。

お疲れ様でした。

参考URL