Соединение X11 использует другой протокол аутентификации при использовании ssh -X

2876
jolivier

Я не могу использовать X-приложения на одном из моих серверов. (Тот же клиент успешно подключается к другим серверам, поэтому проблема не на стороне клиента).

Я соединяюсь с ssh -vvv -Y -4 jet(пробовал также с, -Xвместо того -Y, чтобы, та же самая проблема), чтобы заставить IPv4 (который решает уже предыдущую ошибку). Но когда я запускаю приложение, требующее XI, получаю следующее:

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только что).

Я не sudo suted после ssh, я аутентифицируюсь через закрытый ключ. Мой сервер находится в CentOs, и у меня есть следующая конфигурация сервера sshsudo 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 

Любой намек на то, что может вызвать это?

4
См. Http://serverfault.com/questions/278743/ssh-x11-not-working. У меня была такая же проблема, удаление ~ / .ssh / rc исправило ее. 11 лет назад 1

2 ответа на вопрос

2
Heinrich Hartmann

Следующее решило проблему для меня, ср. 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. Будьте осторожны при копировании!

1
Anthony DiSanti

Я просто делаю снимок в темноте, но поскольку у вас проблемы с xauth, возможно, это связано с надежной пересылкой X11. Вы пытались сделать те же шаги с помощью подключения через SSH ssh -vvv -X -4 jet?

да я пробовал оба -X и -Y, одинаковые ошибки в обоих случаях jolivier 12 лет назад 0