Debian squeeze, X11 forwarding, X -nolisten tcp и gdm/xdm

Понадобилось мне запустить GUI приложение на ноутбуке (далее клиент, IP 192.168.1.15), вернее запустить на домашнем компьютере (далее сервер, IP 192.168.1.10), а увидеть на ноутбуке.
openssh-server (5.5p1-6+squeeze1) на сервере настроен, значит X11 forwarding в руки и вперед. И на сервере и на клиенте - debian squeeze.
На сервере в /etc/ssh/sshd_config естессно
X11Forwarding yes

на клиенте в ~/.ssh/config (с такими настройками можно при подключении не указывать ssh -X)
Host *
   #XAuthLocation /usr/bin/xauth
   ForwardAgent yes
   ForwardX11 yes
   ForwardX11Trusted yes

....

подключаюсь
ssh -p 23456 -X mylogin@192.168.1.10
(сервер слушает на порту 23456, -Х разрешает X11 forwarding (если в ~/.ssh/config не указано ForwardX11 yes), mylogin - логин пользователя на сервере).

проверяю:
xcalc
калькулятор запускается на сервере... на клиенте тишина.
echo $DISPLAY
:0.0
ага, поменяем:
export DISPLAY=192.168.1.15:0.0
(мы же форвардим на клиента, с IP 192.168.1.15)
xcalc
Error: Can't open display: 192.168.1.15:0.0


одна из причин такой ошибки - не включен X11 forwarding на сервере, или, например, включен UseLogin:
man sshd_config
X11Forwarding
.....
X11 forwarding is automatically disabled if UseLogin is enabled.

вторая причина - X server на клиенте не слушает входящие соединения tcp (запущен с параметром -nolisten tcp).
на клиенте:
ps -ef |grep X
... /usr/bin/X :0 vt7 -nolisten tcp -auth /var/lib/xdm/authdir.......
так и есть, nolisten tcp.

В моем случае с xdm:
grep -r nolisten /etc/
нашел
/etc/X11/xinit/xserverrc: exec /usr/bin/X -nolisten tcp "$@"
и
/etc/X11/xdm/Xservers: :0 local /usr/bin/X :0 vt7 -nolisten tcp
далее - удаление -nolisten tcp + рестарт xdm

в случае с gdm:
-nolisten tcp присутствует также в /etc/X11/xinit/xserverrc
но  правка файла и рестарт gdm не дают ожидаемого результата. Х также продолжает запускаться с -nolisten tcp...
Для исправления ситуации нужно заглянуть в файл
/usr/share/gdm/defaults.conf
исправить
DisallowTCP=true
на
DisallowTCP=false
и сделать рестарт gdm


Ну теперь точно все должно работать...
ssh -p 23456 -X mylogin@192.168.1.10
export DISPLAY=192.168.1.15:0.0
xcalc

No protocol specified
.....
cannot connect to X server 192.168.1.15:0.0

последний штрих на клиенте:
xhost +
access control disabled, clients can connect from any host


P.S. в общем то не совсем (совсем не) Х11 over ssh получилось... с таким же успехом можно было подключиться телнетом, поменять DISPLAY и запустить приложение. По идее при ssh -X (-Y) не нужно менять DISPLAY и делать xhost + на клиенте.