Macの画面共有、特に踏み台サーバがあるときのvncポートフォワーディング
vncで画面共有ができる。同じネットワーク内なら、MacならFinder/Go/Connect to Server (⌘+K)で出てくるウィンドウでvnc://[host]とかやればつながる。
問題はネットワークが違うとき。例えば、研究所のネットワーク内にあるマシン(machine)にはインターネットにつながってるサーバ(server)を経由しなければならないようなとき。こういうときは上のようにやっても当然ながら(machine)を見つけられなくて失敗する。
(machine)のvncで使っているポート(5900とか)を、(server)を通したsshトンネルで、ローカルマシン(local)のとあるポート(5901)に転送に転送してやればよい。(local)のlocalhost:5901につなぐことで、暗号化されているsshトンネルを通して(machine)とvnc接続ができる。
1. まず(server)、(machine)ともに公開鍵認証でsshログインできるようにしておく。
ここにやり方を書いてある。
SSHの公開鍵認証設定 - yutoichinoheの日記
2. ~/.ssh/configをつくる
~/.ssh/config Host [machine name] User [user] ProxyCommand ssh [server name] nc -w 10 [machine host] 22 LocalForward 5901 [machine host]:5900 Host [server name] Hostname [server host] Port 22 User [user] Identityfile ~/.ssh/id_dsa
3. つなぐ
$ ssh [machine name]
としておいて、vnc://localhost:5901につなぐ。
参考にした。
ssh で踏み台サーバを経由して画面共有(VNC)する - Qiita
ProxyCommandによるsshの多段接続について -- ぺけみさお
http://mattintosh.blog.so-net.ne.jp/2012-03-03_macosx_vncoverssh