Пересылка X11 и файл .Xauthority

Пересылка X11 и файл .Xauthority

Я искал ответ на этот вопрос время от времени в течение последних нескольких недель, но ни одно из решений, которые я видел, не сработало для меня. Я пробовал удалить файл .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.

Связанный контент