Соединение X11 использует другой протокол аутентификации при использовании ssh -X
Я не могу использовать X-приложения на одном из моих серверов. (Тот же клиент успешно подключается к другим серверам, поэтому проблема не на стороне клиента).
Я соединяюсь с ssh -vvv -Y -4 jet
(пробовал также с -X
вместо -Y
, та же проблема), чтобы заставить IPv4 (который решает уже предыдущую ошибку). Но когда я запускаю приложение, требующее X I, получаю следующее:
debug1: client_input_channel_open: ctype x11 rchan 3 win 65536 max 16384
debug1: client_request_x11: request from 127.0.0.1 42026
debug2: fd 7 setting O_NONBLOCK
debug3: fd 7 is O_NONBLOCK
debug1: channel 1: new [x11]
debug1: confirm x11
debug2: X11 connection uses different authentication protocol.
X11 connection rejected because of wrong authentication.
debug2: X11 rejected 1 i0/o0
debug2: channel 1: read failed
debug2: channel 1: close_read
debug2: channel 1: input open -> drain
debug2: channel 1: ibuf empty
debug2: channel 1: send eof
debug2: channel 1: input drain -> closed
debug2: channel 1: write failed
debug2: channel 1: close_write
debug2: channel 1: output open -> closed
debug2: X11 closed 1 i3/o3
debug2: channel 1: send close
debug2: channel 1: rcvd close
debug2: channel 1: is dead
debug2: channel 1: garbage collecting
debug1: channel 1: free: x11, nchannels 2
debug3: channel 1: status: The following connections are open:
#0 client-session (t4 r0 i0/0 o0/0 fd 4/5 cc -1)
#1 x11 (t7 r3 i3/0 o3/0 fd 7/7 cc -1)
xterm Xt error: Can't open display: JET:10.0
xauth list
дает мне
JET:11 MIT-MAGIC-COOKIE-1 8d5c49524a122751ec382da3613c9408
JET:10 MIT-MAGIC-COOKIE-1 6582c5c546ca979132e2d32c64ef481d
echo $DISPLAY
дает мне
JET:10.0
Поэтому у меня есть куки для этого дисплея.
Моя версия SSH на сервере:
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
Из различных решений, найденных в сети, было что-то вроде
xauth generate $DISPLAY MIT-MAGIC-COOKIE-1
но когда я запускаю эту команду, я получаю ту же ошибку, что и при запуске программы X (даже если я rm ~/.Xauthority
только раньше)
Я не судил после ssh, я авторизовался с помощью закрытого ключа. Мой сервер находится в CentOs, и у меня есть следующая конфигурация сервера ssh sudo cat /etc/ssh/sshd_config|egrep -v "^#"
ListenAddress 0.0.0.0
Protocol 2
SyslogFacility AUTHPRIV
LogLevel DEBUG3
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
UsePAM yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no
Subsystem sftp /usr/libexec/openssh/sftp-server
Любой намек на то, что может вызвать это?
2 ответа
Следующее решило проблему для меня, ср. ssh-x11-не работает по азату:
Причиной переадресации ssh X было то, что у меня есть
/etc/ssh/sshrc
Конфигурационный файлКонец
sshd(8)
Страница руководства гласит:Если ~ /.ssh / rc существует, запускает его; иначе, если / etc / ssh / sshrc существует, запускает его; в противном случае работает XauthПоэтому я добавляю следующие команды
/etc/ssh/sshrc
(также со страницы руководства sshd) на стороне сервера:
# example sshrc file
if read proto cookie && [ -n "$DISPLAY" ]; then
if [ `echo $DISPLAY | cut -c1-10` = 'localhost:' ]; then
# X11UseLocalhost=yes
echo add unix:`echo $DISPLAY |
cut -c11-` $proto $cookie
else
# X11UseLocalhost=no
echo add $DISPLAY $proto $cookie
fi | xauth -q -
fi
И это работает!
Примечание: отредактировано, чтобы сделать два набора обратных галочек более понятными в примере sshrc. Будьте осторожны при копировании!
Я просто делаю снимок в темноте, но поскольку у вас проблемы с xauth, возможно, это связано с надежной пересылкой X11. Вы пытались сделать те же шаги с помощью подключения через SSH через ssh -vvv -X -4 jet
?