職業プログラマの休日出勤

職業プログラマによる日曜自宅プログラミングや思考実験の成果たち。リアル休日出勤が発生すると更新が滞りがちになる。記事の内容は個人の意見であり、所属している(いた)組織の意見ではない。

msysgit で Windows FireWall を越える

5月21日にGitHubよりWindows向けの公式アプリが発表されましたが、まだ現時点ではWindowsでgitを利用するためにmsysgitを使っている人も多いかと思います。(慣れていないせいか)あまり使い勝手が良いとは思えませんが…。

一方、先日我が家のWindowsマシンではWindowsFireWallの設定を変更して、こんな風にしたのでした。
f:id:t_motooka:20120523160935p:image
デフォルトと異なるのは「規則に一致しない送信接続はブロックされます」というところですね。
この結果、msysgitからGitHubに接続することができなくなってしまいました。
こんなエラーが表示されます。

ssh: connect to host github.com port 22: Bad file number
fatal: The remote end hung up unexpectedly

宛て先がTCP22な送信接続を許可してしまえば素早く解決できますが、せっかくWindowsを使っているのですから、プログラムごとの許可という形で設定を施したいところです。

msysgitの接続をプログラム単位で許可するには

こいつに許可を与えてあげればOKです。

%ProgramFiles% (x86)\Git\bin\ssh.exe

そして未検証ですが、32bit版のWindows(使っている人居るの?)であれば

%ProgramFiles%\Git\bin\ssh.exe

になるでしょう。

GUIもCUI(Bash)も、内部的に使用しているプログラムは同一らしく、この設定1つで行けました。

検証環境

  • Windows 7 Professional (64bit) Service Pack 1