Каждый раз, когда я инициирую 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.
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, что также позволяет выполнить желаемый тихий вход в систему.