Ответы:
Эти сообщения могут быть удалены одним из трех способов, используя только параметры SSH. Вы также всегда можете отправлять сообщения, /dev/null
но эти методы пытаются обработать сообщение с помощью конфигурации, а не просто перехватывать и сбрасывать их.
Сервер, на который вы обращаетесь, жалуется, что не может создать запись в .Xauthority
файле пользователя , потому что xauth
он не установлен. Таким образом, вы можете установить его на каждом сервере, чтобы избавиться от этого раздражающего сообщения.
На Fedora 19 вы устанавливаете xauth
так:
$ sudo yum install xorg-x11-xauth
Если вы попытаетесь ssh
зайти на сервер, вы увидите сообщение о том, что в .Xauthority
файле пользователя создается запись .
$ ssh root@server
/usr/bin/xauth: creating new authority file /root/.Xauthority
$
Последующие логины больше не будут показывать это сообщение.
Вы можете ssh
указать клиенту не пытаться включить пересылку X11, включив параметр SSH ForwardX11.
$ ssh -o ForwardX11=no root@server
Вы можете сделать то же самое с -x
переключателем:
$ ssh -x root@server
Это только временно отключит это сообщение, но это хороший вариант, если вы не можете или не хотите устанавливать его xauth
на удаленный сервер.
Обычно это значение по умолчанию, но в sshd
противном случае вы можете настроить свой сервер так, чтобы X11Forwarding был отключен, в /etc/ssh/sshd_config
.
X11Forwarding no
Из 3-х методов, которые я обычно использую, # 2, потому что я часто хочу включить их X11Forwarding
на большинстве своих серверов, но потом не хочу видеть X11....
предупреждения
В большинстве случаев это сообщение даже не будет отображаться. Они обычно присутствуют только тогда, когда у вас есть следующие записи в вашем $HOME/.ssh/config
файле, вверху.
ServerAliveInterval 15
ForwardX11 yes
ForwardAgent yes
ForwardX11Trusted yes
GatewayPorts yes
Таким образом, именно эта настройка в конечном итоге приводит к генерации этих X11..
сообщений, поэтому, опять-таки, метод № 2 может показаться наиболее подходящим, если вы хотите работать с ForwardX11 yes
включенным по умолчанию, но затем выборочно отключить его для определенных соединений с ssh
точки зрения клиента. ,
Как правило, не рекомендуется работать ForwardX11 yes
на все время. Так что, если вы хотите работать с SSH-соединениями наиболее безопасным способом, лучше всего сделать следующее:
ForwardX11 yes
в ваш $HOME/.ssh/config
файлssh -X user@server
X11Forwarding
полностью отключите на сервере, чтобы он был запрещенВ моем случае добавление этой строки /etc/ssh/sshd_config
решило проблему:
X11UseLocalhost no
locahost
пересылку X11. Переадресация X11 на двух других все еще работает. Есть идеи, что могло измениться?
Я наткнулся на это сегодня и некоторое время бил меня по голове, пока не наткнулся на параметр ssh:
Если это RHEL 7 (centOS, OEL и т. Д.) И ipv6 отключен, ему необходимо:
AddressFamily inet
установить в / etc / ssh / sshd_config.
Другим небольшим изменением будет, если вы захотите прекратить видеть это сообщение (то есть прекратить попытки пересылки X11) для определенных серверов, но при этом оставьте значение по умолчанию ForwardX11 yes для всех других соединений.
Для этого сценария вы можете отключить пересылку X11 для определенного хоста (или диапазона) в вашем ~ / .ssh / config. Что-то вроде этого:
host 10.1.1.*
ForwardX11 no
Подтверждение: Это небольшое приукрашивание к существующему (и очень полному) существующему ответу - так как я не мог комментировать!
Если запуск клиента в подробном режиме ( ssh -v user@host
) дает вам
debug1: Remote: No xauth program; cannot forward with spoofing.
но xauth
на самом деле он установлен на сервере, то, вероятно, потому что sshd ищет исполняемый файл xauth в неправильном месте ( обычно / usr / X11R6 / bin / xauth ). Это можно исправить, установив
XAuthLocation /usr/bin/xauth
в / etc / sshd / sshd_config (или где-либо еще, на котором настроен ваш сервер).
В дополнение ко всем отличным ответам, уже здесь, вы можете настроить ForwardX11
для каждого хоста, так что, если только server
не удается, как это, вы можете добавить запись в свой ~/.ssh/config
файл следующей формы:
Host server server.domain.dom
ForwardX11 no
Вы даже можете использовать такие записи как псевдонимы для целых наборов конфигураций.
Host my.server
HostName server.domain.dom
User user
Port 1234
ForwardX11 no
Это особенно полезно, если вы настроили автозаполнение имен серверов для SSH и SCP .
Я столкнулся с этим вопросом после столкновения с sshd-xauth
ошибкой почти десятилетнего возраста. Сообщается о двух решениях: первое - в обход xauth
, второе - для устранения ошибки.
Решение 1 - обход Xauth
Удаленный /etc/ssh/sshd_config
:
X11Forwarding no
X11DisplayOffset 10
X11UseLocalhost yes
Удаленный ~/.Xauthority
пустой или не существует
По местному:
Xephyr -ac -screen 1280x800 -br -reset :2 &
DISPLAY=:2 ssh -fR 6010:/tmp/.X11-unix/X2 user@remote "DISPLAY=:10 xeyes"
В тесте local работал Ubuntu 18.05, удаленный - Debian Jesse.
Я также разместил это решение в качестве ответа на другой вопрос.
Решение 2 - устранить ошибку sshd / xauth
Это решение близко к решению @systempoet выше , хотя одного этого было недостаточно.
В дополнение к модификации /etc/ssh/sshd_config
на пульте:
AddressFamily inet
/etc/hosts
на пульте также были доработаны:
::1 localhost ip6-localhost ip6-loopback
Если любой из них был закомментирован, сообщение об ошибке
X11 forwarding request failed on channel 0
появился после ssh -X ...
звонка. Кроме того, /var/log/auth.log
показанная ошибка:
sshd[...]: error: Failed to allocate internet-domain X11 display socket
Тест для создания ошибки (до исправления):
Локальная машина:
$ Xephyr -ac -screen 1280x800 -br -reset -terminate :2 &
$ DISPLAY=:2 ssh -X user@remote
X11 forwarding request failed on channel 0
Установите следующие 2 опции /etc/ssh/sshd_config
на вашем хосте RHEL
X11Forwarding yes
X11UseLocalhost no
sudo /etc/init.d/sshd reload
sudo yum install xauth
ssh -X yourname@rhelbox