SSH X11 forwarding

以前やった時は大丈夫だったのに出来なくなってしまったので原因を調査。ここ数週間の間にやったことといえばiptablesなので、DROPしたパケットのログをとるようにしてみたところ、原因がはっきりした。単にTCP6010番ポートへのアクセスが禁止されていたためであった。localhoslからlocalhost:6010へのアクセスを許可するようにしたら、問題なく出来るようになった。

具体的には、ssh で ホスト remote にログインすると、環境変数DISPLAY が remote:10.0 などと設定されます。ここで xclock などのX アプリケーションを実行すると、環境変数 DISPLAY が参照され、ディスプレイ番号 10、つまりポート 6010 (X サーバのポート番号 6000+10) に接続し、X プロトコルをしゃべります。remote の sshd は ポート 6010 へのデータを local の ssh に転送し、ssh がローカルの X サーバに中継します。

今まで仕組みが良く分かっていなかったのだが、上のようになっていたのか。お正月の内にもう少しiptablesの設定を見直そう。
ついでにメモ。

$ ssh -X -Y 192.168.0.x
$ startx
$ ctrl + z
$ bg
$ bmpx --no-log