Пересылка ssh X11 не будет работать

Я пытался заставить порт X11 работать с моего ноутбука. Я не могу понять, почему это не сработает.

Я получаю это сообщение при попытке запустить xterm:

X11 connection rejected because of wrong authentication.
xterm Xt error: Can't open display: localhost:10.0

Я не знаю, связано ли это или нет, но когда я вхожу, я получаю это сообщение:

/usr/bin/xauth:  timeout in locking authority file /home/sphillips/.Xauthority

Я задавался вопросом, заключается ли проблема в том, что мой локальный пользователь на моем ноутбуке - skp, а имя пользователя на этом сервере - sphillips. Я смог настроить переадресацию X11 для работы с другими моими компьютерами, которые используют тот же логин skp.

Кроме того, переадресация портов X11 работает с компьютера под управлением Windows, используя Xming и Putty, на один и тот же сервер. Я должен вручную настроить переменную DISPLAY на IP-адрес и отобразить 0.0, но это работает.

Я запустил xhost + на своей машине, пытаясь обойти любые проблемы безопасности. Это все еще не сработало.

На сервере я проверяю конфигурацию:

$ sudo grep X11Forwarding /etc/ssh/sshd_config
#X11Forwarding no
X11Forwarding yes
#   X11Forwarding no

И на моей машине так же:

$ sudo grep X11Forwarding /etc/ssh/sshd_config
[sudo] password for skp: 
#X11Forwarding no
X11Forwarding yes
#   X11Forwarding no

Мой сервер - RedHat Enterprise Linux 6, а мой ноутбук - Fedora 15.

Кто-нибудь может дать мне какие-нибудь мысли о том, как заставить SSH X11 работать с моего ноутбука?

5 ответов

Я наконец нашел ответ (по крайней мере, для моей ситуации)! Проблема была в SELinux. Я выключил SELinux, и он работал без проблем.

Если вы интересуетесь всеми мрачными подробностями, вы можете прочитать об этом в моем блоге, но позвольте мне подробно изложить соответствующие факты здесь...

На удаленной машине я использовал dmesg для просмотра сообщений журнала:

dmesg | tail

Я нашел несколько сообщений, подобных этому:

type=1400 audit(1332520527.110:51337): avc: denied { read } for pid=25240 comm="sshd" name="authorized_keys" dev=dm-5 ino=167 scontext=unconfined_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:home_root_t:s0 tclass=file

Вы можете проверить состояние SELinux с помощью этой команды:

$ sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: permissive
Mode from config file: permissive
Policy version: 24
Policy from config file: targeted

Вы можете включить его в разрешительный режим с помощью этой команды:

setenforce 0

Для получения дополнительной информации о SELinux я нашел руководство Red Hat полезным. Кроме того, что касается других проблем SSH, я нашел блог Дэвида полезным для получения помощи в регистрации.

Для меня после этого моя пересылка X11 начала работать без проблем.

SELinux предотвращал несколько других вещей. Не удалось создать файлы, необходимые для проверки подлинности ключа. Я также обнаружил, что он блокирует ssh-keygen от создания ключей в домашнем каталоге.

Я тоже наткнулся на это. Но в моем случае это было потому, что я удалил поддержку IPv6 несколько дней назад. Затем я наткнулся на эту ветку, объясняющую, как убедиться, что sshd использует только IPv4.

Вот как я это сделал, добавьте это:

AddressFamily inet

в свой ssh_config-файл (в Ubuntu /etc/ssh/sshd_config) и заставьте sshd перезагрузить свою конфигурацию (kill -SIGHUP pid-of-sshd).

У меня возникла та же проблема с контейнером Debian OpenVZ, и проблема, похоже, возникла из моего файла /etc/hosts, где "localhost" был связан с IP-адресом локальной сети, а не 127.0.0.1.

До:

192.168.0.15  dagi dagi.domain.net localhost localhost.localdomain

После:

192.168.0.15  dagi dagi.domain.net
127.0.0.1     localhost localhost.localdomain

После этого оба ssh -X а также ssh -Y работал как шарм, даже не перезапуская sshd.

Помимо ответа @Chl выше, у меня также был поврежденный файл ~/.Xauthority.

По какой-то причине он принадлежал пользователю root даже в моем домашнем каталоге. Так что мне пришлось sudo -s а затем удалил его.

Затем воссоздал его с touch ~/.Xauthority

После этого у меня работала переадресация X под Ubuntu 14.04.

sudo grep X11Forwarding /etc/ssh/sshd_config

X11Forwarding yes 
#sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: permissive
Mode from config file: permissive
Policy version: 24
Policy from config file: targeted
#You can turn it to permissive mode with this command:
#setenforce 0
Другие вопросы по тегам