プロキシ環境下のSSH設定

プロキシ環境下で外部にSSHを使いたいときは~/.ssh/configもしくは/etc/ssh/ssh_configにProxyCommandの設定を行いますが、Hostの書き方にハマったのでメモします。

Vagrantではゲストにlocalhost:2222でSSH接続します。外部接続はプロキシを使い、localhostに対してはプロキシを使わないという設定を行いたかったのですが、Hostのパターンに !localhost,* と書いても期待する動作にはなりませんでした。

最終的に以下の書き方で落ち着きました。

Host localhost
  ProxyCommand none

Host 127.0.0.1
  ProxyCommand none

Host *
  ProxyCommand connect -H proxy.example.com:80 %h %p

なお、試したのは git for windows (git version 1.9.4.msysgit.0) に付属の ssh (OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007) です。