Вопрос: Как я могу предотвратить предупреждение No xauth data; используя фальшивые данные аутентификации для пересылки X11?


Каждый раз, когда я запускаю ssh-соединение с моего Mac на Linux (Debian), я получаю это предупреждение:

No xauth data; using fake authentication data for X11 forwarding.

Это также происходит для инструментов, которые используют ssh, например git или mercurial.

Я просто хочу внести локальные изменения в свою систему, чтобы это не появилось.

Примечание. У меня есть сервер X11 (XQuartz 2.7.3 (xorg-server 1.12.4)) на моей Mac OS X (10.8.1), и он работает правильно, я могу успешно запускать часы локально или удаленно.


48
2017-08-30 14:42


Источник


Какую команду вы используете для ssh? - DerfK
@DerfK просто ssh hostname но в моем ~/.ssh/config я добавил ForwardX11 yes некоторое время назад. Тем не менее это то, что я хочу иметь там. - sorin
Используя Ubuntu 16.04 LTS (август 2017), я сдаюсь. Суть в том, что, хотя она и дает ошибку, она работает. я использую ssh -Y hostname от Linux и ssh -x hostname при использовании OpenSSH в Windows. - SDsolar


Ответы:


Ни один из опубликованных решений не работал для меня. Моя клиентская (настольная) система работает под управлением macOS 10.12.5 (Sierra). я добавил -v к вариантам ssh и он сказал мне,

debug1: No xauth program.

что означает, что у него нет правильного пути к xauth программа. (В этой версии macOS путь к xauth нестандартно.) Решение заключалось в том, чтобы добавить эту строку в /etc/ssh/ssh_config (может быть /etc/ssh/config в некоторых установках) или в ~/.ssh/config (если у вас нет прав администратора):

XAuthLocation /opt/X11/bin/xauth

Теперь предупреждающее сообщение исчезло.


43
2017-07-04 22:19



О, МОЙ БОГ. Годы я пытался найти решение, и это сработало. Годы я говорю! Обратите внимание, что я сделал это, добавив эту строку под Host * запись в моем ~/.ssh/config вместо редактирования /etc/ssh/ssh_config, Единственная документация, которую я нашел для этого, была в man sshd_config, - Demitri
Это сработало и для меня. Я понимаю, что на данный момент XQuartz не находится в хорошем состоянии из-за отсутствия финансирования. Поэтому я думаю, что проблемы с переносом, как это, на самом деле меньше, чем я ожидал. - AlanObject
Наконец-то работал !!! - thuzhf
На Высокой Сьерре; это тот, который работал и на меня. - mklein9
Обратите внимание, что эта проблема может возникнуть даже когда ваша оболочка может найти xauth в вашей ПУТЬ! Я полагаю, что клиент ssh дезинфицирует ваш PATH по соображениям безопасности? - MarcH


Нашел причину, мой ~/.ssh/config был неполным, вам нужны оба:

Host *
    ForwardAgent yes
    ForwardX11 yes

Моя ошибка заключалась в том, что я включил только опцию ForwardX11.


17
2017-08-30 14:49



Я не уверен, почему это необходимо / важно. ForwardAgent используется, чтобы ключи, кэшированные в ssh-agent для прохождения через несколько вложенных SSH-соединений. Он не должен иметь никакого отношения к X11. И, по мнению некоторых, это не очень хорошая идея: heipei.github.io/2015/02/26/... - underscore_d
Это звучит не так, что помогает фактически отключить переадресацию X11 или исправить конфигурацию xauth для ее настройки. Это не связано с агентами ssh. - eckes


Как уже отмечалось, представляется, что xauth на OS X Yosemite перешла на старую версию, которая не работает с XQuartz's $DISPLAY установка:

% xauth -V
1.0.9
% xauth generate $DISPLAY .
xauth: (argv):1:  bad display name "/private/tmp/com.apple.launchd(...)/org.macosforge.xquartz:0" in "add" command

8
2018-01-07 23:47



Я тестировал те же строки на OS X 10.11, и я не получаю никаких ошибок. Еще одна версия XQuartz. - sorin
@guest Ваш xauth generate $DISPLAY . команда работала на моей Mac OS X High Sierra (10.13), и она решила мою No xauth data; using fake authentication data for X11 forwarding. пб. - SebMa


Предоставление Ubuntu bash для Windows 10 ssh -X  получить среду GUI на удаленном сервере

  • Первый

Установите все следующее. В окне установите Xming, В Ubuntu bash используйте sudo apt install установить ssh xauth xorg,

sudo apt install ssh xauth xorg
  • второй

Перейти в папку содержит ssh_config файл, мой /etc/ssh,

  • В третьих

редактировать ssh_config как администратор (USE sudo). внутри ssh_config, удалите хэш # в линиях ForwardAgent, ForwardX11, ForwardX11Trusted, и установите соответствующие аргументы для yes,

# /etc/ssh/ssh_config

Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted yes
  • вперед

В ssh_config файл, удалить передний хэш # до Port 22 а также Protocol 2, а также добавьте новую строку в конце файла, чтобы указать местоположение файла xauth, XauthLocation /usr/bin/xauth, запишите свой собственный путь к файлу xauth.

# /etc/ssh/ssh_config

#   IdentifyFile ...
    Port 22
    Protocol 2
#   Cipher 3des
#   ...
#   ...
    ...
    ...
    GSSAPIDelegateCredentials no
    XauthLocation /usr/bin/xauth
  • пятый

Теперь, когда мы закончили редактирование ssh_config файл, сохраните его, когда мы покинем редактор. Теперь перейдите в папку ~ или $HOME, добавить export DISPLAY=localhost:0 на ваш .bashrc файл и сохранить его.

# ~/.bashrc
...
...
export DISPLAY=localhost:0
  • Последний

Мы почти закончили. Перезапустите оболочку bash, откройте Xming программы и использования ssh -X yourusername@yourhost, Затем наслаждайтесь графическим интерфейсом.

ssh -X yourusername@yourhost

Проблема также в подсистеме Ubuntu в Windows, и ссылка находится в

https://gist.github.com/DestinyOne/f236f71b9cdecd349507dfe90ebae776

Примечание: связанный текст включает в себя 2 опечатки (XauthLocaion вместо XauthLocation)


7
2017-09-22 02:05



Вопрос не в Windows. - kasperd
На MacOS это почти то же самое, различия вместо Xming, мы должны получить XQuartz, и ssh_config файл находится в другом месте, мой /private/etc/ssh, - DestinyOne
А также, последняя строка для ssh_config будет: XAuthLocation /opt/X11/bin/xauth - DestinyOne
Необходимое редактирование: XauthLocaion -> XauthLocation (это редактирование слишком мало для меня). - echristopherson
Помимо установки xming, ssh,xauth, а также xorg (шаг 1), единственное, что мне понадобилось, было export DISPLAY=localhost:0 - Eponymous


На данный момент в MacOS есть ошибка. Я тоже это понял. Исправление для меня включало добавление следующего в мой .bash_profile

dispdir=`dirname $DISPLAY`
dispfile=`basename $DISPLAY`
dispnew="$dispdir/:0"
if [ -e $DISPLAY -a "$dispfile" = "org.x:0" ]; then
  mv $DISPLAY $dispnew
fi
export DISPLAY=$dispnew

По сути, имя для файла, связанного с вашим корнем X, нельзя обрабатывать правильно и, следовательно, требует коррекции. :-)


2
2017-09-08 05:29



Я сомневаюсь, что это решит ошибку в приложениях GUI OS X, таких как SourceTree. - sorin
Подтверждение того, что он работает в Sierra для запуска emacs с использованием X - поскольку Mac является сервером. это должно широко работать в случаях, когда клиент находится на удаленной машине - Mark Mullin


В том числе

XAuthLocation / opt / local / bin / xauth в ~ / .ssh / config

в моем macOS Sierra 10.12.6 работал для меня. Небольшое изменение ответа 7).


2
2017-08-01 14:45





я просто удалил ~ / .Xauthority (конечный компьютер) из моей корневой папки и ssh -X 192.168.123.1 снова и ik работал.


1
2018-04-02 10:01



Я могу подтвердить, что это ответ на Mac OS Sierra 10.12.4. Удаление ~ / .Xauthority на сервере SSH делает трюк: ~$ mv ~/.Xauthority ~/.Xauthority.bak  Новый волшебный файл cookie автоматически был возвращен в ~ / .Xauthority после того, как я снова войду в систему. Никаких сценариев Bash вообще не требуется. - Kenneth Pegasus