Що означає "Попередження: не вдалося встановити ненадійне перенаправлення X11: не створено ключових даних xauth", коли ssh'ing з -X?


134

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

Попередження: невдала настройка переадресації X11 не вдалася: дані ключа xauth не створені Попередження: Немає даних xauth; використання підроблених даних аутентифікації для переадресації X11.

Чи можу я щось зробити, щоб це попередження пройшло? Якщо ні, чи можу я сміливо проігнорувати це?

Передача X11, здається, працює нормально, хоча я бачу це повідомлення:

Xlib: розширення "RANDR" відсутнє на дисплеї "localhost: 10.0".

Це пов’язано з попередженням? (Я здогадуюсь, ні. Якщо це не так, я поставлю нове запитання з цього приводу.)


1
Чи встановлена ​​програма xauth на сервері ubuntu?
слубач

sudo apt-get install xauthкаже мені, "xauth - це вже найновіша версія"
Дарил Спітцер

Коли ви входите на сервер ubuntu, що є результатом "який xauth"?
слубач

Дійсно, я думаю, ви повинні прочитати це пояснення: mail-archive.com/cygwin-xfree@cygwin.com/msg17927.html… Ви можете проігнорувати це попередження
служанин

2
іноді це може бути викликано проблемами з вашим файлом ~ / .Xauthority. Якщо ви видалите його, він буде створений заново під час наступної спроби входу.
Майкл

Відповіді:


145

З будь-якої причини ви не хочете використовувати прапор -Y замість прапора -X?

Простіше кажучи, різниця між -X і -Y полягає в тому, що -Y дозволяє надійне перенаправлення X11.


4
Ні, мені просто не було відомо про прапор -Y, коли я писав питання. Я вважаю, що це виявилося рішенням. Змініть свою відповідь, щоб це не питання (і було б добре, якщо ви коротко пояснили різницю між -Y та -C), і я прийму його.
Даріл Спітцер

Чи є випадок, коли ви не хочете використовувати -Y замість -X?
Півень

@Rooster для дуже старих систем, де -Y не підтримується, я б сказав
Петро,

Порада щодо усунення несправностей: Запустіть "ssh -vv ..." і знайдіть рядок xauth та будь-які повідомлення про помилки. Ви можете спробувати запустити лінію xauth, яку вона показує безпосередньо. Для моєї я потрібен, щоб це було щось на кшталт "xauth list: 0" (довірено) не "xauth -f / tmp / ssh ... list: 0" (ненадійний). Котрий -Y зафіксовано та "ForwardX11Trusted yes" у віддаленому хості / etc / ssh / ssh_config (або ~ / .ssh / config) також виправлено.
Кертіс Яллоп

Це рішення також працювало з Cygwin / X.
linux64kb

25

Якщо ви приїжджаєте сюди у 2015 році: навіть якщо все інше налаштовано належним чином, це також може статися на Mac OS X 10.10 Yosemite, коли використовується ssh -Xта працює версія XQuartz <= 2.7.7. Першопричиною є дисплей X11, що записується за межами шляху пошуку xauth: випуск № 2068 у трекері XQuartz.

Редагувати: з тих пір вийшов виправлений XQuartz на новій домашній сторінці, xquartz.org , і встановлення останньої версії звідти (зараз 2.7.9) допоможе вирішити проблему.


1
Дякую! Я не мав уявлення, що XQuartz, який я тільки що завантажив, зверху сторінки XQuartz, насправді не є останнім випуском.
Craigds

Варто зазначити, що в brew install xquartzданий час встановлюється застаріла версія 2.7.7.
Мартін Клівер

brew install Caskroom/cask/xquartzмає отримати найновіший XQuartz з HomeBrew
Нік

Або коротше brew cask install xquartz.
Франклін Ю

17

Якщо ви отримуєте те саме повідомлення навіть під час використання -Y, xauthпрограма може бути відсутня на сервері. У системах, схожих на Debian, вам потрібен xauthпакет. У системах, схожих на RedHat, вам потрібен xorg-x11-xauthпакет.


15

"Ненадійний" у цьому контексті означає, що ви не довіряєте зв’язку. SSH використовуватиме додаткові заходи безпеки, щоб спробувати зробити пересилання X11 більш безпечним. "Довірений" означає, що ви повністю впевнені, що жоден користувач на віддаленому хості не отримає доступ до ваших даних Xauth та використовуватиме його, наприклад, для контролю ваших натискань клавіш.

Ця термінологія насправді плутала мене роками. Я вважав, що «довірені» зв’язки безпечніші. Але насправді це варіант, який ви повинні використовувати в ситуаціях, коли з'єднання є надійним, і ви хочете запускати матеріали без додаткових заходів безпеки. "Ненадійний" - це той, що робить (дещо) безпечнішим справу з ненадійним віддаленим хостом.

"Ненадійне" з'єднання намагається обмежити те, що може зробити чорна шапочка з вами, задіявши розширення безпеки X11 та відключивши інші розширення, які вам (сподіваємось) не потрібні. Можливо, тому RandR відключений з -X. Чи потрібно мати можливість обертати ваш X-дисплей з віддаленого хоста?

Також важливо зауважити, що "ненадійне" перенаправлення X11 вимикається через певний час, щоб не випадково залишити його. Нові спроби відкрити вікна просто пройдуть після цього. Це мене покусало кілька разів, перш ніж я прочитав достатньо документів, щоб зрозуміти, що відбувається.


9

У мене немає налаштування, яке може проявляти таку поведінку, тож це знімок у темряві:

Попередження може бути придушене , якщо ви встановите ForwardX11Trustedна "no"для хостів , які дають попередження. Ви можете розмістити це в будь-якому ~/.ssh/configабо /etc/ssh/ssh_config, і ви можете зробити параметр, специфічний для певного хоста, включивши Host <hostname>в рядок вище. <hostname>компонент відповідає тому , що ви вводите в командному рядку (недозволене ім'я хоста), і він може включати в себе групові символи.


Можна використовувати ssh -Yнадійне перенаправлення X11, але як можна виправити ненадійне?
Павло Шимерда

Я отримав таку ж помилку в Redhat, і тепер я можу її вирішити, відредагувавши конфігураційний файл /etc/ssh/ssh_configна стороні клієнта. Дякую
Gangadhar Jannu

7

БУДУТЬСЯ (втомившись читати неповні відповіді, які призводять до вад безпеки)

1 / використання ssh -Y означає, що тут є фальшива інформація xauth, що погано!

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

Безпечне рішення:

1 / Увімкніть першу опцію на вкладці " Захист " (Cmd-,), яка дозволяє автентифіковані з'єднання

2 / доп

XAuthLocation /opt/X11/bin/xauth

у $ HOME / .ssh / config

3 / ssh -X you_serverпрацює в захищеному режимі


6

Якщо встановлення xauthне працює належним чином, одним особливо дратівливим випадком може бути пошкоджений .Xauthorityфайл. Цей конкретний випадок дозволив деяким клієнтам X працювати, але не іншим із більшою схильністю виходити з ладу з новими дисплеями. Видалення та відновлення .Xauthorityфайлу може вирішити цю проблему.


6

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

По-перше, слід виключити будь-які проблеми на стороні сервера. Чи можете ви ssh -Xз будь-якого іншого хоста успішно? Чи ssh -Yпрацює, поки ssh -Xні? В будь-якому випадку припустімо, що ssh + X11 налаштовано правильно на вашому сервері та перейдіть до наступного розділу.

Якщо ви не можете перевірити це (скажімо, у вас є один ноутбук, на якому працює X11), ви можете sshперейти з сервера до себе, використовуючи підроблений сеанс:

  1. export DISPLAY=:44# (Оболонка Борна) або
    setenv DISPLAY :44# (csh / tcsh)
  2. xauth add $DISPLAY MIT-MAGIC-COOKIE-1 1234 # Факультативне печиво саме для цього тесту
  3. ssh -X localhost env |grep DISPLAY

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

На Mac: перевірте, чи Xquartz оновлюється

Відповідно до відповіді Вілла Еглі

Вивчіть ssh -vv -Xвихід

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

Чи бачите ви таке повідомлення?

debug1: Немає програми xauth.
Якщо так,

  1. Зверніть увагу на те, де у вашій клієнтській системі xauthзнаходиться команда:
    який xauth
  2. Додайте наступне в самому кінці вашого ~ / .ssh / config (і додайте коментар, щоб нагадати собі, щоб зберегти його там у майбутньому):
    Ведучий *
        XAuthLocation / opt / X11 / bin / xauth
    
    Відкоригуйте цей шлях відповідно до висновків кроку 1 - Подяки Яну-Віллему Арнольду

3

Як уже було пояснено вище, для мене працювало наступне:

Відредагуйте ~ / .ssh / config, щоб додати рядки

Host *
    XAuthLocation /opt/X11/bin/xauth

і тепер ssh -X ім'я хоста працює (XQuartz 2.7.11, macOS 10.4 Mojave)


0

У мене вже був встановлений останній XQuartz 2.7.11, але я думаю, що я також оновив ОС кілька разів. Я перевстановив XQuartz 2.7.11, і тепер він працює нормально.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.