Назад | Перейти на главную страницу

Как предотвратить предупреждение Нет данных xauth; использовать поддельные данные аутентификации для пересылки 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), и он работает правильно, я могу успешно запускать часы локально или удаленно.

Ни одно из опубликованных решений не помогло мне. Моя клиентская (настольная) система работает под управлением 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

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

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

Host *
    ForwardAgent yes
    ForwardX11 yes

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

Разрешение запуска 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 как администратор (ИСПОЛЬЗОВАТЬ 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)

Как уже отмечалось, кажется, что xauth на OS X Yosemite вернулся к старой версии, которая не работает с XQuartz $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

На данный момент в 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, не может быть правильно обработано и, следовательно, требует исправления. :-)

Включая

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

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

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

В моем случае это была проблема с доменом .Xauthority, содержащим непересылку Magic cookie, Fabby на http://askubuntu.com/questions/571116/ рекомендует 14.11.2014 добавлять эту строку в конец .bashrc или. профиль, чтобы разрешить пересылку ключей xauth между пользователями при вызове su:

export $(dbus-launch)

Я также ранее добавил:

export XAUTHORITY=~/.Xauthority 

чтобы гарантировать, что удаленный вызов с ssh -X ̍ @ найдет его.

В моем случае .Xauthority - это символическая ссылка на исходного пользователя /home//.Xauthority, от которого я исхожу ...

  cd /home/<child_user>;ln -sf /home/<parent_user>/.Xauthority .xAuthority

с правильными правами:

  sudo chown <parent_user> /home/<parent_user>/.profile
  chmod a+rw /home/<parent_user>/.profile 

так доступно для и для. сможет запускать приложения и отображать результаты в X-окне на своем локальном экране во всей учетной записи прокси!

СОВЕТ: проверьте список xauth ... если отображается волшебный файл cookie.

Я бы добавил это как комментарий, но у меня недостаточно репутации. Добавление еще одной строки в Соринрешение сработало для меня.

На клиентском компьютере отредактируйте файл конфигурации ssh с помощью vim ~/.ssh/config

Затем добавьте к нему эти строки:

Host *
    ForwardAgent yes
    ForwardX11 yes
    XAuthLocation /opt/X11/bin/xauth

Вы можете дважды проверить свой xauth место с:

which xauth

Это начало происходить со мной после переноса моей установки Cygwin с одного компьютера на другой. Проблема, похоже, заключалась в изменении имени хоста: волшебный файл cookie больше не соответствовал имени хоста нового ПК.

Бег

touch ~/.Xauthority
xauth add :0 . `mcookie`

на локальной установке Cygwin устранена проблема для меня - xauth list теперь перечислены волшебные файлы cookie, связанные с правильным именем хоста нового ПК, и предупреждение перестало появляться.

Моей целью было получить тихий вход в командную строку на основе ssh на хостах Linux с моего клиента macOS. Например. Я не хотел видеть баннеры или сообщения. Просто настройте вход на основе сертификата, чтобы я мог ввести псевдоним в и получить приглашение на хост-машине. Для этого я сделал следующее:

  • На Debian 10 Linux хозяин Я коснулся (например, создал) ~/.hushlogin

  • Однако на macOS Catalina клиент ssh Я получил сообщение:

    Нет данных xauth; использование поддельных данных аутентификации для пересылки X11.

После подтверждения xauth двоичное местоположение, я добавилXAuthLocation /opt/X11/bin/xauth к /etc/ssh/sshd_config на клиенте macOS, но это сделало не работать для меня, когда я использовал эту команду:

ssh -Y user@debian10

В конечном итоге @ ssanch ответ сделал работать на меня. Но прежде чем я обнаружил это решение, я наткнулся на обходной путь, который может помочь некоторым людям:

ssh -Yy user@host

Добавление строчных букв -y Флаг командной строки ssh заставляет его отправлять выходные данные журнала в syslog вместо stderr, что также позволяет выполнить желаемый тихий вход в систему.