Когда я использую ssh -X
на своем Mac (под управлением OS X 10.6.7) подключение к моему Ubuntu (11.04), я получаю следующее предупреждение:
Предупреждение: не удалось установить ненадежную пересылку X11: данные ключа xauth не сгенерированы Предупреждение: данные xauth отсутствуют; используя поддельные данные аутентификации для пересылки X11.
Что я могу сделать, чтобы это предупреждение исчезло? Если нет, могу ли я спокойно проигнорировать это?
Пересылка X11, кажется, работает нормально, хотя я вижу это сообщение:
Xlib: расширение «RANDR» отсутствует на дисплее «localhost: 10.0».
Это связано с предупреждением? (Наверное, нет. Если это не так, я задам новый вопрос об этом.)
ssh
x11forwarding
warning
Дэрил Спитцер
источник
источник
sudo apt-get install xauth
говорит мне, что «xauth - это самая новая версия»Ответы:
По какой причине вы не хотите использовать флаг -Y вместо флага -X?
Проще говоря, разница между -X и -Y заключается в том, что -Y включает надежную пересылку X11.
источник
Если вы приедете сюда в 2015 году: даже если все остальное настроено правильно, это также может произойти в Mac OS X 10.10 Yosemite, при использовании
ssh -X
и запуске версии XQuartz <= 2.7.7. Основная причина заключается в том, что экранные сокеты X11 записываются вне пути поиска xauth: проблема # 2068 в трекере XQuartz.Редактировать: исправленный XQuartz был выпущен на новой домашней странице, xquartz.org , и установка последней версии оттуда (в настоящее время 2.7.9) поможет обойти эту проблему.
источник
brew install xquartz
настоящее время устанавливается устаревшая версия 2.7.7.brew install Caskroom/cask/xquartz
должен получить вам последний XQuartz с HomeBrewbrew cask install xquartz
.Если вы получаете то же сообщение даже при использовании
-Y
,xauth
программа может отсутствовать на сервере. В Debian-подобных системах вам нуженxauth
пакет. В RedHat-подобных системах вам нуженxorg-x11-xauth
пакет.источник
«Ненадежный» в этом контексте означает, что вы не доверяете соединению. SSH будет использовать дополнительные меры безопасности, чтобы попытаться сделать пересылку X11 более безопасной. «Доверенный» означает, что вы абсолютно уверены, что никто на удаленном хосте не получит доступ к вашим данным Xauth и будет использовать его, например, для отслеживания нажатий клавиш.
Эта терминология фактически смущала меня годами. Я думал, что «Надежные» соединения были безопаснее. Но на самом деле это вариант, который вы должны использовать в ситуациях, когда соединение заслуживает доверия, и вы хотите запускать вещи без дополнительных мер безопасности, мешающих вам. «Ненадежный» - это тот, который делает (несколько) более безопасным работу с ненадежным удаленным хостом.
«Ненадежное» соединение пытается ограничить то, что черная шляпа может сделать для вас, задействовав расширение безопасности X11 и отключив другие расширения, которые вам (надеюсь) не нужны. Вероятно, поэтому RandR отключен с помощью -X. Нужно ли вам иметь возможность вращать X-дисплей с удаленного хоста?
Также важно отметить, что «ненадежная» переадресация X11 отключается через определенное время, чтобы вы не могли случайно оставить его включенным. Новые попытки открыть окна после этого просто потерпят неудачу. Это укусило меня несколько раз, прежде чем я прочитал достаточно документов, чтобы понять, что происходит.
источник
У меня нет установки, которая может демонстрировать это поведение, так что это выстрел в темноте:
Предупреждение может быть подавлено , если вы установите
ForwardX11Trusted
на"no"
для хостов , которые дают предупреждение. Вы можете поместить это в или~/.ssh/config
или/etc/ssh/ssh_config
, и вы можете сделать опцию, специфичную для конкретного хоста, включивHost <hostname>
в строку выше.<hostname>
компонент соответствует тому , что вы вводите в командной строке (не разрешенное имя хоста), и он может включать в себя групповые символы.источник
ssh -Y
для доверенной пересылки X11, но как исправить ненадежную?/etc/ssh/ssh_config
на стороне клиента. СпасибоОСТЕРЕГАЙТЕСЬ (надоело читать неполные ответы, которые приводят к недостатку безопасности)
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
работает в безопасном местеисточник
Если установка
xauth
не работает должным образом, один особенно раздражающий случай мог быть поврежденным.Xauthority
файлом. Этот конкретный случай позволил некоторым X-клиентам работать, но не другим, у которых более высокая тенденция к сбою с новыми дисплеями. Удаление и воссоздание.Xauthority
файла может решить эту проблему.источник
Исключите проблемы на стороне сервера
Во-первых, вы должны исключить любые проблемы на стороне сервера. Вы можете
ssh -X
успешно с любого другого хоста? Работает,ssh -Y
покаssh -X
нет? В любом случае предположим, что ssh + X11 правильно настроен на вашем сервере и перейдите к следующему разделу.Если вы не можете это проверить (скажем, у вас есть только один ноутбук с X11), вы можете
ssh
перейти с сервера на себя, используя поддельный сеанс:export DISPLAY=:44
# (Оболочка Bourne) илиsetenv DISPLAY :44
# (csh / tcsh)xauth add $DISPLAY MIT-MAGIC-COOKIE-1 1234
# Фальшивое печенье только для этого тестаssh -X localhost env |grep DISPLAY
Ожидаемый результат: переменная DISPLAY должна быть установлена на удаленном конце сеанса ssh-to-self. Если вы не получите никакого результата, ваш сервер, вероятно, неправильно настроен (например, библиотеки X11 и / или
xauth
команда могут отсутствовать; или в конфигурации sshd может быть отказано в доступе к X11)На Mac: убедитесь, что Xquartz обновлен
Согласно ответу Уилла Энгли
Изучить
ssh -vv -X
выходПриведенное вами сообщение об ошибке является симптомом, который может иметь много причин. Попробуйте еще раз , что даст вам дополнительные сведения о том, почему не удалось установить туннель X11.
ssh -X -vv remotehost
Вы видите следующее сообщение?
Если так,xauth
команда:источник
Как уже было объяснено выше, у меня сработало следующее:
Отредактируйте ~ / .ssh / config, чтобы добавить строки
и теперь ssh -X hostname работает (XQuartz 2.7.11, macOS 10.4 Mojave)
источник
У меня уже была установлена последняя версия XQuartz 2.7.11, но я думаю, что с тех пор я также несколько раз обновлял ОС. Я переустановил XQuartz 2.7.11, и теперь он работает нормально.
источник
xauth add `hostname` / unix: 10 MIT-MAGIC-COOKIE-1` openssl rand -hex 16`
источник