ssh -X で「DISPLAY is not set」と表示されてX11の転送ができない

Linux PC
Linux

ssh -Xでリモートログインした端末からX11転送ができない。ww

foo@myhost:~$ palimpsest 
ディスプレイをオープンできません: 

コマンドを実行した端末内で確認したところ、正常動作時は設定されているはずのDISPLAY変数が設定されていない。

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のみで接続するよう設定を追加する。

sudo vi /etc/ssh/sshd_config

AddressFamily inet

sshdを再起動させる。
foo@myhost:~$ sudo service ssh restart
ssh start/running, process 5865
foo@myhost:~$ 

再度接続しなおすと、DISPLAY変数が正常に設定されており、X11転送も正常に動く。

foo@myhost:~$ env|grep DISPLAY
DISPLAY=localhost:10.0
foo@myhost:~$ 

sshをIPv4でのみ動作させる

余談だが、sshでIPv4のみで動作するようにさせるには、以下の設定で動く。
今回の不具合とは無関係なので、設定を変更しなくてもよい。
/etc/default/sshを修正してIPv4で動作するように強制させる。

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$ 

Last Updated on 2024-08-13 by spicebeat

タイトルとURLをコピーしました