Я искал ответ на этот вопрос время от времени в течение последних нескольких недель, но ни одно из решений, которые я видел, не сработало для меня. Я пробовал удалить файл .Xauthority в обоих местах. Я использую Cygwin X для доступа к другому компьютеру. Недавно переадресация X11 не работала. После запуска X-сервера на моей локальной машине:
[local]$ export DISPLAY=0.0
[local]$ ssh -XY user@remotelocation
Warning: No xauth data; using fake authentication data for X11 forwarding.
Не уверен, что это будет полезно, но:
[remote]$ xauth list
location/unix:10 MIT-MAGIC-COOKIE-1 304eb389beb66bf44ae6bc1821bdf472
Наконец, проблема возникает здесь:
[remote]$ gedit file &
X11 connection refused because of wrong authentication.
Я всегда получал предупреждение "нет данных xauth; используется поддельная аутентификация", но недавно в результате было отклонено соединение X11. Есть ли у вас какие-либо предложения?
решение1
Я попробовал удалить
.Xauthority
файл в обоих местах.
Может быть, что-то пошло не так до этого, но после этого вы точно не добьетесь успеха. Если вы где-то нашли этот совет, и он не имел в виду какое-то крайне необычное обстоятельство, которое к вам не относится, добавьте этот источник в черный список. Восстановите файл .Xauthority
на клиенте.
Если вы потеряли файл .Xauthority
, вы можете восстановить его из запущенного процесса или из временного файла. Я понятия не имею, как это сделать с Cygwin. Простой способ, который будет работать везде, — выйти из X-сервера и запустить новый.
Если вы получаете сообщение «нет данных xauth; используется поддельная аутентификация», то удаленные приложения не смогут отображаться на вашем локальном сервере, если он не настроен с отключенной безопасностью. Без безопасности xauth любой может шпионить за вашим сеансом X и вводить данные, если у него есть доступ к серверу X; в зависимости от конфигурации, им может потребоваться быть локальными пользователями (в этом случае это не так уж и плохо в однопользовательской операционной системе) или может быть достаточно, чтобы они могли открыть TCP-соединение с вашей машиной (т. е. они находятся в вашей локальной сети, что может быть кем угодно, если вы, например, используете публичный Wi-Fi). Если это работало раньше, а теперь не работает, это может быть связано с тем, что недавно была исправлена какая-то недостающая проверка безопасности.
После того, как у вас есть действительный .Xauthority
файл, откройте оболочку и проверьте, что вы можете запускать локальные приложения, такие как gedit
. Из той же оболочки запустите ssh -X user@remotelocation
и попробуйте запустить приложение X. Либо это сработает, либо вы получите сообщения об ошибках; прочитайте их и скопируйте-вставьте, если попросите о помощи. Если это не работает, запустите ssh -vv -X user@remotelocation
; дополнительный отладочный вывод даст некоторую информацию о том, почему это не работает.
Убедитесь, что сервер разрешает удаленные подключения X. При использовании OpenSSH файл /etc/sshd_config
(или /etc/ssh/sshd_config
другое местоположение в зависимости от дистрибутива) должен содержать X11Forwarding yes
.