Когда я использую ssh -X
на моем Mac (под управлением OS X 10.6.7) для подключения к моему Ubuntu (11.04), я получаю следующее предупреждение:
Предупреждение: ненадежная пересылка X11 не удалась: данные ключа xauth не сгенерированы. Предупреждение: нет данных xauth; используются поддельные данные аутентификации для пересылки X11 .
Что я могу сделать, чтобы это предупреждение исчезло? Если нет, могу ли я игнорировать его?
Пересылка X11, похоже, работает нормально, хотя я вижу это сообщение:
Xlib: расширение «RANDR» отсутствует на отображении «localhost: 10.0».
Это связано с предупреждением? (Полагаю, что нет. Если это не так, я задам новый вопрос по этому поводу.)
Если установка xauth
не работает должным образом, особенно неприятным случаем может быть поврежденный файл .Xauthority
. Этот конкретный случай позволил некоторым X-клиентам работать, но не другим с большей тенденцией к отказу с новыми дисплеями. Эту проблему может решить удаление и воссоздание файла .Xauthority
.
Если вы приедете сюда в 2015 году: даже если все остальное настроено правильно, это также может произойти на Mac OS X 10.10 Yosemite, при использовании ssh -X
и запуске XQuartz версии <= 2.7.7. Основной причиной является то, что сокеты дисплея X11 записываются вне пути поиска xauth: issue #2068 в трекере XQuartz.
Edit: С тех пор на новой домашней странице, xquartz, был выпущен исправленный XQuartz. org, и установка последней версии оттуда (на данный момент 2.7.9) сработает.
«Недоверенный» в этом контексте означает, что вы не доверяете соединению. SSH будет использовать дополнительные меры безопасности, чтобы попытаться сделать пересылку X11 более безопасной. «Надежный» означает, что вы полностью уверены, что ни один из удаленных хостов не получит доступ к вашим данным Xauth и, например, будет использовать их для отслеживания нажатий клавиш.
Эта терминология на самом деле сбивала меня с толку в течение многих лет. Я думал, что надежные соединения безопаснее. Но на самом деле это вариант, который вы должны использовать в ситуациях, когда соединение заслуживает доверия и вы хотите запускать что-то без дополнительных мер безопасности, мешающих вам.«Недоверенный» - это то соединение, которое делает (в некоторой степени) более безопасным работу с ненадежным удаленным хостом.
«Недоверенное» соединение пытается ограничить действия, которые может сделать с вами черная шляпа, задействовав расширение безопасности X11 и отключив другие расширения. что вам (надеюсь) не нужно. Вероятно, поэтому RandR отключен с помощью -X. Вам нужно иметь возможность поворачивать дисплей X с удаленного хоста?
Также важно отметить, что «ненадежная» пересылка X11 отключается через определенное время, чтобы вы случайно не оставили его включенным. После этого новые попытки открыть окна будут просто неудачными. Это несколько раз укусило меня, прежде чем я прочитал достаточно документов, чтобы понять, что происходит.
У меня уже была установлена последняя версия XQuartz 2.7.11, но я думаю, что с тех пор я также несколько раз обновлял ОС. Я переустановил XQuartz 2.7.11, и теперь он работает нормально.
Во-первых, вы должны исключить любые проблемы на стороне сервера. Можете ли вы успешно использовать ssh -X
с любого другого хоста? Работает ли ssh -Y
, а ssh -X
- нет? В любом случае предположим, что ssh + X11 правильно настроен на вашем сервере, и переходите к следующему разделу.
Если вы не в состоянии это проверить (скажем, у вас есть только один ноутбук с X11), вы можете ssh
с сервера на себя, используя поддельный сеанс:
export DISPLAY =: 44
# (оболочка Bourne) или setenv DISPLAY: 44
# (csh / tcsh) xauth add $ DISPLAY MIT-MAGIC-COOKIE-1 1234
# Поддельный cookie только для этого теста ssh -X localhost env | grep DISPLAY
Ожидаемый результат: должна быть переменная DISPLAY установлен на удаленном конце сеанса ssh-to-self. Если вы не получили результата, вероятно, ваш сервер неправильно настроен (например, библиотеки X11 и / или команда xauth
могут отсутствовать; или конфигурация sshd может быть настроена на запрет доступа X11)
Согласно Ответ Энгли
ssh -vv -X
output Приведенное вами сообщение об ошибке является признаком того, что может иметь много причин. Повторите попытку с помощью ssh -X -vv remotehost
, что должно дать вам дополнительные подсказки относительно того, почему не удалось настроить туннель X11.
Вы видите следующее сообщение?
debug1: No xauth program.Если да ,
xauth
: which xauth
Host * XAuthLocation / opt / X11 / bin / xauthОтрегулируйте этот путь согласно результатам шага 1 - Кредиты Яну-Виллему Арнольду
ОСТОРОЖНО (устал читать неполные ответы, которые приводят к уязвимости безопасности)
использование ssh -Y означает, что здесь имеется ложная информация xauth, что плохо!
ssh -X должен работать, поскольку XQuartz, когда он включен, использует xauth. Единственная проблема заключается в том, что ssh ищет xauth в / usr / X11R6 / bin, а на macos с XQuartz он находится в / opt / X11 / bin
Решение безопасности:
Включите первую опцию в Безопасность вкладка настроек (Cmd-,) который включает аутентифицированные соединения
, добавьте следующее в $ HOME / .ssh / config
XAuthLocation / opt / X11 / bin / xauth
ssh -X you_server
работает в безопасном режиме
Как уже объяснялось выше, у меня работало следующее:
Отредактируйте ~ / .ssh / config , чтобы добавить строки
Host *
XAuthLocation /opt/X11/bin/xauth
и теперь ssh -X hostname работает (XQuartz 2.7.11, macOS 10.4 Mojave)
Используя XQuartz 2.7.11 в MacOS Catalina, мне пришлось обновить файл / etc / ssh / ssh_config и добавить XAuthLocation / opt / X11 / bin / xauth
после Хост *
для работы ssh -X