##はじめに
Mac OSXだとHTTP Proxyを経由してインターネット上のサーバにSSHする際にハマるポイントがあるため備忘録を残す。インターネット上のサーバとしてはVPSやEC2のようなパブリッククラウドサービスを想定している。
##うまくいくやり方
xx.xx.xx.xxがProxyのIP。FQDNでも可のはず。
$ brew install nmap
$ ssh -o ProxyCommand='ncat --proxy-type http --proxy xx.xx.xx.xx:3128 %h %p' -i ~/.ssh/id_rsa ubuntu@vm1
##普通のやり方
Linuxだとこれでうまく行くはず。
$ ssh ProxyCommand='nc -X connect -x xx.xx.xx.xx:3128 %h %p' -i ~/.ssh/id_rsa ubuntu@vm1
なぜかエラー (OSXでうまくいかない)
nc: Proxy error: "HTTP/1.1 200 Connection established"
ssh_exchange_identification: Connection closed by remote host
蛇足
以下のnetcatでもダメだった。こちらは-vvvでデバッグした限りProxyオプションがない?
$ brew install netcat
$ ssh ProxyCommand='nc -X connect -x xx.xx.xx.xx:3128 %h %p' -i ~/.ssh/id_rsa ubuntu@vm1