他の設定は特に問題ないのに,SSHでX11 Forwardingが効かない症状発生,かなり悩んだ.原因はX11Forwarding does not work when net.ipv6.conf.all.disable_ipv6 = 1の様子(2010年のバグ報告だけど...).
IPv6をdisableするためにsysctl
で net.ipv6.conf.all.disable_ipv6 = 1
としている環境ではX11 Forwardingが動作しない様子.解決方法は以下のいづれか.
net.ipv6.conf.all.disable_ipv6 = 0
(←これが default)するか,-4
option付きでsshd
を起動する(/etc/default/ssh
にそのように書いておく)か,
手元環境はIPv4 Onlyだが,SSH serverとはいえNote PCで,出先でテザリング等するので,この際IPv6をenable (前者で対応)することにした.
なお,Client/Serverとも他の設定は問題なくて,最新のDebian GNU/Linux unstableの ssh serverを起動して,そこに繋ごうとしたら症状が出た.いつのなにのupgradeが原因か不明.
X11 Forwardingが効かない,のログは以下.
Client:
debug1: Requesting X11 forwarding with authentication spoofing.
debug1: Requesting authentication agent forwarding.
debug1: Sending environment.
debug1: channel 0: setting env LANG = "en_US.UTF-8"
X11 forwarding request failed on channel 0
Server:
2022-12-03T19:54:38.724819+09:00 xxxxxx sshd[21834]: Accepted publickey for myn from 10.8.0.13 port 46426 ssh2: RSA SHA256:(snip)
2022-12-03T19:54:38.727374+09:00 xxxxxx sshd[21834]: pam_unix(sshd:session): session opened for user myn(uid=XXXX) by (uid=0)
2022-12-03T19:54:38.827380+09:00 xxxxxx sshd[21834]: pam_env(sshd:session): deprecated reading of user environment enabled
2022-12-03T19:54:38.957033+09:00 xxxxxx sshd[21846]: error: Failed to allocate internet-domain X11 display socket.
最初は deprecated reading of user environment enabled
を疑って,sshd: pam_env(sshd:session): deprecated reading of user environment enabled のバグレポートを発見したが,これについては現状では皆スルーしている様子.で,他の bug reportを漁って,X11Forwarding does not work when net.ipv6.conf.all.disable_ipv6 = 1 を発見,sudo sysctl net.ipv6.conf.all.disable_ipv6=0
としたらひとまず X11 Forwarding が有効になった.にしても openssh-server のバグレポート,大量にあるな...