SOCK/HTTPSプロキシ経由でSSH接続する方法

企業や大学のネットワークでは外部のサーバーに直接SSH接続できないようになっている場合があります. こういった環境でSSH接続を行う方法の一つに, プロキシを利用する方法があります.

SOCKS v.5プロキシサーバー: proxy.example.com:1080 接続先サーバー: server.example.com で接続する場合は以下のようなコマンドになります.

ssh -o ProxyCommand='nc -x proxy.example.com:1080 %h %p' server.example.com

何度も利用する場合は ~/.ssh/config に設定を書いておくと便利です.

Host server.example.com-socks
    Hostname        server.example.com
    ProxyCommand    nc -x proxy.example.com:1080 %h %p

-X オプションではプロキシのプロトコルを指定することができ, SOCKS v.5の場合は5, SOCKS v.4の場合は4, HTTPSの場合はconnectを指定します. デフォルトはSOCKS5です.
-x オプションにはプロキシのアドレスとポート番号を指定します. SOCKSプロキシの場合はポート1080, HTTPSプロキシの場合はポート3128がデフォルト値になっており, そのポートを利用している場合はポート番号は省略可能です.

テスト環境: OS X 10.9 Mavericks

参考: nc(1) Mac OS X Manual Page (https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/nc.1.html)