ssh -Xでリモートログインした端末からX11転送ができない。ww
1 2 |
foo@myhost:~$ palimpsest ディスプレイをオープンできません: |
コマンドを実行した端末内で確認したところ、正常動作時は設定されているはずのDISPLAY変数が設定されていない。
1 2 |
foo@myhost:~$ env|grep DISPLAY foo@myhost:~$ |
ググったところ、どうやらsshでIPv6がこの問題に関連しているようで、ssh接続をIPv4に制限してやることが対策になるらしい。
ssh – DISPLAY is not set – Failed to allocate internet-domain X11 display socket
対策方法
sshd_configにIPv4のみで接続するよう設定を追加する。
1 2 3 4 5 6 7 8 |
sudo vi /etc/ssh/sshd_config AddressFamily inet sshdを再起動させる。 foo@myhost:~$ sudo service ssh restart ssh start/running, process 5865 foo@myhost:~$ |
再度接続しなおすと、DISPLAY変数が正常に設定されており、X11転送も正常に動く。
1 2 3 |
foo@myhost:~$ env|grep DISPLAY DISPLAY=localhost:10.0 foo@myhost:~$ |
sshをIPv4でのみ動作させる
余談だが、sshでIPv4のみで動作するようにさせるには、以下の設定で動く。
今回の不具合とは無関係なので、設定を変更しなくてもよい。
/etc/default/sshを修正してIPv4で動作するように強制させる。
1 2 3 4 5 6 7 8 9 |
sudo vi /etc/default/ssh foo@myhost:/etc/default$ cat ssh # Default settings for openssh-server. This file is sourced by /bin/sh from # /etc/init.d/ssh. # Options to pass to sshd SSHD_OPTS=-4 foo@myhost:/etc/default$ |