Отображение X-клиентов с хоста Ubuntu на Cygwin через VPN [дубликат]

Когда я использую ssh -X на моем Mac (под управлением OS X 10.6.7) для подключения к моему Ubuntu (11.04), я получаю следующее предупреждение:

Предупреждение: ненадежная пересылка X11 не удалась: данные ключа xauth не сгенерированы. Предупреждение: нет данных xauth; используются поддельные данные аутентификации для пересылки X11 .

Что я могу сделать, чтобы это предупреждение исчезло? Если нет, могу ли я игнорировать его?

Пересылка X11, похоже, работает нормально, хотя я вижу это сообщение:

Xlib: расширение «RANDR» отсутствует на отображении «localhost: 10.0».

Это связано с предупреждением? (Полагаю, что нет. Если это не так, я задам новый вопрос по этому поводу.)

158
задан 26 May 2011 в 01:41
9 ответов

Если установка xauth не работает должным образом, особенно неприятным случаем может быть поврежденный файл .Xauthority . Этот конкретный случай позволил некоторым X-клиентам работать, но не другим с большей тенденцией к отказу с новыми дисплеями. Эту проблему может решить удаление и воссоздание файла .Xauthority .

6
ответ дан 4 January 2021 в 10:07

Если вы приедете сюда в 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) сработает.

25
ответ дан 4 January 2021 в 10:07

«Недоверенный» в этом контексте означает, что вы не доверяете соединению. SSH будет использовать дополнительные меры безопасности, чтобы попытаться сделать пересылку X11 более безопасной. «Надежный» означает, что вы полностью уверены, что ни один из удаленных хостов не получит доступ к вашим данным Xauth и, например, будет использовать их для отслеживания нажатий клавиш.

Эта терминология на самом деле сбивала меня с толку в течение многих лет. Я думал, что надежные соединения безопаснее. Но на самом деле это вариант, который вы должны использовать в ситуациях, когда соединение заслуживает доверия и вы хотите запускать что-то без дополнительных мер безопасности, мешающих вам.«Недоверенный» - это то соединение, которое делает (в некоторой степени) более безопасным работу с ненадежным удаленным хостом.

«Недоверенное» соединение пытается ограничить действия, которые может сделать с вами черная шляпа, задействовав расширение безопасности X11 и отключив другие расширения. что вам (надеюсь) не нужно. Вероятно, поэтому RandR отключен с помощью -X. Вам нужно иметь возможность поворачивать дисплей X с удаленного хоста?

Также важно отметить, что «ненадежная» пересылка X11 отключается через определенное время, чтобы вы случайно не оставили его включенным. После этого новые попытки открыть окна будут просто неудачными. Это несколько раз укусило меня, прежде чем я прочитал достаточно документов, чтобы понять, что происходит.

17
ответ дан 4 January 2021 в 10:07

xauth add `hostname`/unix:10 MIT-MAGIC-COOKIE-1 `openssl rand -hex 16`

-3
ответ дан 4 January 2021 в 10:07

У меня уже была установлена ​​последняя версия XQuartz 2.7.11, но я думаю, что с тех пор я также несколько раз обновлял ОС. Я переустановил XQuartz 2.7.11, и теперь он работает нормально.

0
ответ дан 4 January 2021 в 10:07

Исключение проблем на стороне сервера

Во-первых, вы должны исключить любые проблемы на стороне сервера. Можете ли вы успешно использовать ssh -X с любого другого хоста? Работает ли ssh -Y , а ssh -X - нет? В любом случае предположим, что ssh + X11 правильно настроен на вашем сервере, и переходите к следующему разделу.

Если вы не в состоянии это проверить (скажем, у вас есть только один ноутбук с X11), вы можете ssh с сервера на себя, используя поддельный сеанс:

  1. export DISPLAY =: 44 # (оболочка Bourne) или
    setenv DISPLAY: 44 # (csh / tcsh)
  2. xauth add $ DISPLAY MIT-MAGIC-COOKIE-1 1234 # Поддельный cookie только для этого теста
  3. ssh -X localhost env | grep DISPLAY

Ожидаемый результат: должна быть переменная DISPLAY установлен на удаленном конце сеанса ssh-to-self. Если вы не получили результата, вероятно, ваш сервер неправильно настроен (например, библиотеки X11 и / или команда xauth могут отсутствовать; или конфигурация sshd может быть настроена на запрет доступа X11)

Вкл. Mac: убедитесь, что Xquartz обновлен.

Согласно Ответ Энгли

Изучите ssh -vv -X output

Приведенное вами сообщение об ошибке является признаком того, что может иметь много причин. Повторите попытку с помощью ssh -X -vv remotehost , что должно дать вам дополнительные подсказки относительно того, почему не удалось настроить туннель X11.

Вы видите следующее сообщение?

debug1: No xauth program.
Если да ,
  1. Обратите внимание на то, где в вашей клиентской системе находится команда xauth :
     which xauth 
  2. Добавьте следующее в самый конец ~ / .ssh / config (и добавьте комментарий, чтобы напомнить себе, что нужно оставить его там в будущем):
     Host *
      XAuthLocation / opt / X11 / bin / xauth
     
    Отрегулируйте этот путь согласно результатам шага 1 - Кредиты Яну-Виллему Арнольду
10
ответ дан 4 January 2021 в 10:07

ОСТОРОЖНО (устал читать неполные ответы, которые приводят к уязвимости безопасности)

  1. использование ssh -Y означает, что здесь имеется ложная информация xauth, что плохо!

  2. ssh -X должен работать, поскольку XQuartz, когда он включен, использует xauth. Единственная проблема заключается в том, что ssh ищет xauth в / usr / X11R6 / bin, а на macos с XQuartz он находится в / opt / X11 / bin

Решение безопасности:

  1. Включите первую опцию в Безопасность вкладка настроек (Cmd-,) который включает аутентифицированные соединения

  2. , добавьте следующее в $ HOME / .ssh / config

    XAuthLocation / opt / X11 / bin / xauth

  3. ssh -X you_server работает в безопасном режиме

15
ответ дан 4 January 2021 в 10:07

Как уже объяснялось выше, у меня работало следующее:

Отредактируйте ~ / .ssh / config , чтобы добавить строки

Host *
    XAuthLocation /opt/X11/bin/xauth

и теперь ssh -X hostname работает (XQuartz 2.7.11, macOS 10.4 Mojave)

4
ответ дан 4 January 2021 в 10:07

Используя XQuartz 2.7.11 в MacOS Catalina, мне пришлось обновить файл / etc / ssh / ssh_config и добавить XAuthLocation / opt / X11 / bin / xauth после Хост * для работы ssh -X

1
ответ дан 4 January 2021 в 10:07

Теги

Похожие вопросы