SSH越しのX11フォワード

メモ。


□マシン1 : 手元の端末
(i.e. SSHクライアント、Xサーバ)


■マシン2 : リモートの端末
(i.e. SSHサーバ、Xクライアント)


マシン2のXアプリをマシン1の画面上で表示(実行)したい。


1. マシン1の設定


/etc/ssh/sshd_config
を次の内容に変更
X11Forwarding yes
X11DisplayOffset 10


2. sshdデーモンをリスタートして設定を反映

/etc/init.d/sshd restart
または
killall -HUP sshd


3. マシン2の設定


/etc/ssh/ssh_config
を次の内容に変更
Host *
ForwardX11 yes


4. マシン1からマシン2にSSH接続し、プログラムを実行


例、
$ ssh マシン2 xterm
または
マシン2へsloginして、xtermを実行
または
$ ssh マシン2 'DISPLAY=マシン1:0.0 xterm'


(※)三番目の方法だと、マシン2の設定は要らないみたい。
ssh_config(sshクライアントの設定ファイル)でX11フォワードを
許可すると、SSH接続の時にDISPLAY変数にlocalhost:10.0を渡してる。


sshを使わない場合は、Xサーバ(マシン1)で
$ xhost マシン2
として、マシン2でXアプリを実行する際に
DISPLAY=マシン1:0.0を渡せれれば、大丈夫なはず。


$ xhost +hostname // ホスト追加
$ xhost -hostname // ホスト削除
$ xhost // 確認

※xhostよりは、xauthの方がマシらしい。