GitHubにプロキシ経由でpushする(Windows環境)
簡単そうで意外と簡単にできない。ググると色んな方法があるようで、それが混乱の元となっているように感じます。さらに、LinuxとWindowsという環境の違いもあるし。
GitHub自体はHTTPSに対応しているようなんですが、どうもうちの環境だとNGみたいです。なので将来的には、下記のHTTPプロキシの設定だけでいいかも。
git config http.proxy http://my.proxy.url:80
認証プロキシだとこうかな。
git config http.proxy http://user:pass@my.proxy.url:80
これでうまくいく幸せな人は、以降の話は不要なので無視してください。
残念ながら私はうまくいかなかった環境でした。で、とりあえずHTTPSはあきらめ、SSH経由でのpushでうまくいきました。参考にしたサイトはここです。
必要なもの
- msysgit
- connect.c バイナリ
設定
- msysgitはOpenSSHオプションでインストールしておいてください。
- SSH認証鍵の作成
- 下記コマンドで作成します。色々と聞かれますが全部エンターでもおっけ。パスフレーズを設定したければ設定してください。
ssh-keygen
- これで%HOME%\.sshフォルダ以下に、id_rsaとid_rsa.pubができあがります。
- 生成したid_rsa.pubの中身をクリップボードにコピーし、GitHubに登録しておきます。
- GitHubのアカウント設定画面から、Public SSH Keysで鍵の登録ができます。
- %HOME%\.ssh\config ファイルを作成し、下記内容を書きます。これがプロキシ経由でGitHubのSSHサーバにアクセスする設定となっています。
ProxyCommand C:/tools/connect.exe -H username@proxy.example.com:443 %h %p Host github.com User git Port 22 Hostname github.com IdentityFile "C:\Document and Settings\username\\.ssh\id_rsa" TCPKeepAlive yes IdentitiesOnly yes Host ssh.github.com User git Port 443 Hostname ssh.github.com IdentityFile "C:\Document and Settings\username\\.ssh\id_rsa" TCPKeepAlive yes IdentitiesOnly yes