Вопрос или проблема
Нет программы xauth; невозможно перенаправить X11
Я получил следующую ошибку, когда попытался выполнить команду.
$ ssh -v -X name@host
...
debug1: Нет программы xauth.
Предупреждение: Нет данных xauth; используется поддельные данные аутентификации для перенаправления X11.
...
Согласно вышеуказанному, у меня уже есть следующая строка в /etc/ssh/sshd_config на хосте. Кто-нибудь знает, как исправить эту проблему?
$ grep XAuthLocation /etc/ssh/sshd_config
XAuthLocation /usr/bin/xauth
$ which xauth
/usr/bin/xauth
$ xauth version
1.1
https://stackoverflow.com/questions/39622173/cant-run-ssh-x-on-macos-sierra
Вышеупомянутая информация актуальна. Я использую Catalina. Следующие строки необходимо добавить в /etc/ssh/ssh_config
под записью Host *.
XAuthLocation /opt/X11/bin/xauth
ServerAliveInterval 60
ForwardX11Timeout 596h
Установите xauth на целевом хосте. На обоих сайтах должна быть установлена программа xauth для обмена/проверки, например, MIT-MAGIC-COOKIE-1.
Ответ или решение
Ошибка "debug1: No xauth program. Warning: No xauth data; using fake authentication data for X11 forwarding." указывает на проблемы с перенаправлением X11 через SSH-соединение. Это может возникать по нескольким причинам, связанным с отсутствием необходимого ПО, неправильной настройкой конфигурационных файлов или несовместимостью версий программного обеспечения.
Понимание проблемы
X11 – это графическая система, используемая на Unix-подобных системах. При использовании SSH для подключения к удаленной машине возможно перенаправление X11, что позволяет запускать графические приложения на удаленной машине и отображать их на локальном экране. Для этого требуется программа xauth
, которая управляет авторизацией.
Возможные причины проблемы
-
Отсутствие
xauth
: На целевой системе может не быть установленного пакетаxauth
. Это необходимо для обмена и проверки данных авторизации, таких как MIT-MAGIC-COOKIE-1. -
Неправильное расположение программы
xauth
: Если программа установлена в нестандартной директории, SSH может ее не находить. -
Конфигурационные файлы SSH: Возможно, настройки в файлах
/etc/ssh/ssh_config
или/etc/ssh/sshd_config
не соответствуют требованиям для корректной работы X11 перенаправления.
Решение проблемы
-
Установка
xauth
на целевой машине:
Убедитесь, чтоxauth
установлен. Для установки вы можете использовать менеджер пакетов вашей системы. Для Ubuntu/Debian выполните:sudo apt-get install xauth
Для CentOS/RHEL:
sudo yum install xorg-x11-xauth
-
Проверка местоположения
xauth
:
Убедитесь, чтоxauth
установлен в/usr/bin/xauth
или в другом известном пути. Используйте:which xauth
Если
xauth
установлен в другом месте, вам нужно изменить путь в конфигурационном файлеsshd_config
. -
Настройка конфигурационных файлов:
В файле/etc/ssh/sshd_config
должно быть указано:XAuthLocation /usr/bin/xauth
Также проверьте файл
/etc/ssh/ssh_config
на наличие параметров, позволяющих использовать X11 перенаправление:Host * ForwardX11 yes XAuthLocation /usr/bin/xauth
-
Перезапуск службы SSH:
После внесения изменений в конфигурацию не забудьте перезапустить сервер SSH:sudo systemctl restart sshd
-
Настройки на локальной машине:
Убедитесь, что у вас также установленxauth
и что SSH-клиент на вашей локальной машине правильно настроен. Например, на macOS Catalina вы можете добавить следующую строку в файл/etc/ssh/ssh_config
:XAuthLocation /opt/X11/bin/xauth
Заключение
Ошибка "No xauth program" обычно связана с отсутствием или неправильной конфигурацией программы xauth
. Убедитесь, что она установлена как на локальной, так и на удаленной машине, и что конфигурационные файлы SSH настроены корректно. Это должно решить проблему и позволить вам успешно использовать X11 перенаправление через SSH.