ssh over VNC

sshポートフォワーディングを利用して、VNC接続を行う。
とりあえずssh接続。


ssh -L [LocalhostPort]:[Remorthost]:[RemothostPort] [Remothost] -l [RemothostUser]
例えばローカルポート1234でリモートホストexample.com。ユーザ名examだと以下のようになる。

$ ssh -L 1234:example.com:5901 example.com -l exam
が、XVNCViewerで接続しようとすると、以下のようなエラーが発生する。

channel 3: open failed: connect failed: Connection refused
つまみがなければ鼻でもつまむ | Apple Remote Desktop on SSHより
どうも、IPv6をチェックして失敗しているらしい。そこで書式を変えてみる。

$ ssh -L [LocalPort]:[Localhost]:[RemotePort] [UserName]@[Remotehost]
つまり

$ ssh -L 1234:127.0.0.1:5901 exam@example.com
パスワードを入力してログインしたら、このセッションは放置。
他のターミナルで

xvnc4viewer localhost::1234
「::」と2つ連続していることに注意。
上手くいけば、VNCServerのパスワード入力画面が表示され、入力が済めば接続できる。
(当然リモート側でServerを起動していなければ無理)
SSHの接続書式を変えたら上手く行った。
Puttyを使用したWindowsでの接続は上手くいかんが、回避方法がよく分からん。
どうやらPuttyのトンネリングのホスト指定がまずかった様だ。
後で記事にまとめよう。