У меня есть машина с Ubuntu, к которой я использую SSH со своей машины Fedora 14. Я хочу переслать X с компьютера с Ubuntu обратно в Fedora, чтобы я мог запускать графические программы удаленно. Обе машины находятся в локальной сети.
Я знаю, что -X
опция включает пересылку X11 в SSH, но мне кажется, что я пропускаю некоторые шаги.
Каковы необходимые шаги для пересылки X с компьютера с Ubuntu на Fedora через SSH?
ssh
xorg
xforwarding
Мистер Шикаданс
источник
источник
Ответы:
Переадресация X11 должна быть включена как на стороне клиента, так и на стороне сервера.
На стороне клиента , то
-X
(капитал X) вариантssh
включает перенаправление X11, и вы можете сделать это по умолчанию (для всех соединений или для конкретного Conection) сForwardX11 yes
в~/.ssh/config
.На стороне сервера ,
X11Forwarding yes
должен быть указан в/etc/ssh/sshd_config
. Обратите внимание, что по умолчанию перенаправление отсутствует (некоторые дистрибутивы включают его по умолчанию/etc/ssh/sshd_config
), и что пользователь не может переопределить этот параметр.xauth
Программа должна быть установлена на стороне сервера. Если там есть какие-либо программы для X11, вполне вероятно, чтоxauth
они будут там. В маловероятном случаеxauth
была установлена нестандартная локация, ее можно вызвать через~/.ssh/rc
(на сервере!).Обратите внимание, что вам не нужно устанавливать какие-либо переменные среды на сервере.
DISPLAY
иXAUTHORITY
будет автоматически установлен на их правильные значения. Если вы запускаете ssh иDISPLAY
не настроены, это означает, что ssh не пересылает соединение X11.Чтобы убедиться, что ssh пересылает X11, проверьте строку, содержащуюся
Requesting X11 forwarding
вssh -v -X
выводе. Обратите внимание, что сервер не будет отвечать никоим образом, в качестве меры предосторожности для сокрытия подробностей от потенциальных злоумышленников.источник
xhost +
.xhost
из более мягкой эпохи, когда подключение машины к сети означало, что вы заслуживаете доверия.xhost +
означает, что любой, кто может подделать ваш IP, может взять под контроль сеанс вашего X-сервера.ssh -X
установит все необходимые разрешения. Если пересылка X11 отключена в конфигурации сервера, обратитесь к администратору; если это не сработает, см. Пересылка X11 через SSH, если конфигурация сервера не позволяет этого .~/.ssh/config
и/etc/ssh/sshd_config
в одном и том же месте. Я не мог сказать, были ли они различными файлами или просто изменением номенклатуры..Xauthority
файл. Если вы используете Red Hat или другую систему с SELinux, проверьте контекст SELinux, см. Unix.stackexchange.com/questions/36540/…ssh -X
запуска,xterm &
чтобы получить графический терминал в качестве окончательного теста, чтобы увидеть, работает ли он.Чтобы заставить пересылку X11 работать через ssh, вам понадобятся 3 вещи.
Если у вас есть и № 1, и № 2, но отсутствует № 3, то в итоге вы получите пустую переменную окружения DISPLAY.
Суп-о-о, вот как заставить работать пересылку X11.
На вашем сервере убедитесь, что / etc / ssh / sshd_config содержит:
Вам может понадобиться SIGHUP sshd, чтобы он воспринял эти изменения.
На вашем сервере убедитесь, что у вас установлен xauth.
Если у вас не установлен xauth, вы столкнетесь с проблемой «пустая переменная окружения DISPLAY».
На вашем клиенте подключитесь к вашему серверу. Обязательно сообщите ssh, чтобы разрешить пересылку X11. я предпочитаю
но тебе может понравиться
или вы можете установить это в вашем ~ / .ssh / config.
Я столкнулся с этой пустой переменной среды DISPLAY ранее сегодня, когда ssh'ing на новый сервер, который я не администрирую. Отследить недостающую часть xauth было немного весело. Вот что я сделал, и что вы можете сделать тоже.
На моей локальной рабочей станции, где я являюсь администратором, я проверил, что / etc / ssh / sshd_config был настроен для пересылки X11. Когда я возвращаю ssh -X к localhost, мой DISPLAY устанавливается правильно.
Принудительное отключение DISPLAY не было слишком сложным. Мне просто нужно было посмотреть, что делают sshd и ssh, чтобы правильно установить его. Вот полный вывод всего, что я делал по пути.
Вместо того, чтобы использовать sudo для принудительного копирования моих файлов ssh_host_ {dsa, rsa} _key на место, я использовал ssh-keygen для создания фиктивных файлов для себя.
Промойте и повторите с -t dsa:
Отредактируйте ~ / dummy-sshd / sshd_config, чтобы он указывал на правильные новые файлы ключей ssh_host.
Запустите sshd на новом порту в режиме non-detach:
Ой, лучше исправьте этот путь:
Вставьте новый терминал и SSH на локальный хост на порт 50505:
Посмотрите на последние три строки там. Я, к счастью, установил DISPLAY, и у меня были две красивые строки из / usr / bin / xauth.
Оттуда была детская игра - переместить мой / usr / bin / xauth в /usr/bin/xauth.old, отключиться от ssh и остановить sshd, затем запустить sshd и ssh обратно на localhost.
Когда / usr / bin / xauth пропал, я не увидел отображение DISPLAY в моей среде.
Здесь нет ничего блестящего. В основном мне повезло в выборе нормального подхода, чтобы попытаться воспроизвести это на моей локальной машине.
источник
export DISPLAY=:10
. Я никогда не догадывался о таком количестве показа.Убедитесь что:
xauth
установили на сервере (см .:xauth info
/xauth list
).На сервере ваш
/etc/ssh/sshd_config
файл имеет следующие строки:На стороне клиента ваш
~/.ssh/config
файл имеет следующие строки:На стороне клиента у вас установлен X-сервер (например, macOS: XQuartz; Windows: Xming).
Затем, чтобы выполнить пересылку X11 с использованием SSH, вам нужно добавить
-X
в своюssh
команду, например,убедитесь , что ваш
DISPLAY
является не пустым путем:Если это так, то имея подробный параметр для ssh (
-v
), проверьте наличие любых предупреждений, напримерЕсли у вас ненадежный X11, как показано выше, попробуйте
-Y
вместо этого флаг (если вы доверяете хосту):См .: Что означает «Предупреждение: не удалось установить ненадежную пересылку X11: данные ключа xauth не сгенерированы» при ssh'ing с -X?
Если вы предупреждаете: нет данных xauth , вы можете попробовать создать новый
.Xauthority
файл, напримерСм .: Создание / перестройка нового файла .Xauthority.
Если вы получили предупреждения, отличные от указанных выше, следуйте дальнейшим подсказкам.
источник
Исправление заключается в добавлении этой строки в ваш
/etc/ssh/sshd_config
:https://joshua.hoblitt.com/rtfm/2013/04/how_to_fix_x11_forwarding_request_failed_on_channel_0/
источник
Запуск Ubuntu bash в Windows 10
ssh -X
для получения среды графического интерфейса на удаленном сервере.Установите все следующее. В окне установите
Xming
. В Ubuntu bash используйтеsudo apt install
для установкиssh xauth xorg
.Зайдите в папку с
ssh_config
файлом, мой есть/etc/ssh
.Изменить
ssh_config
как администратор (USEsudo
). Внутриssh_config
, удалить хэш#
в строкахForwardAgent
,ForwardX11
,ForwardX11Trusted
и установить соответствующие аргументыyes
.В
ssh_config
файле удалите передний хеш#
доPort 22
иProtocol 2
, а также добавьте новую строку в конце файла, чтобы указать местоположение файла xauth, неXauthLocaion /usr/bin/xauth
забудьте написать собственный путь к файлу xauth.Теперь, когда мы закончили редактирование
ssh_config
файла, сохраните его, когда мы покинем редактор. Теперь перейдите в папку~
или$HOME
добавьтеexport DISPLAY=localhost:0
в свой.bashrc
файл и сохранить его.Мы почти закончили. Перезапустите оболочку bash, откройте свою
Xming
программу и используйтеssh -X yourusername@yourhost
. Тогда наслаждайтесь средой GUI.Проблема также в подсистеме Ubuntu на Windows, и ссылка находится на
https://gist.github.com/DestinyOne/f236f71b9cdecd349507dfe90ebae776
источник
Добавить
X11UseLocalhost no
к/etc/ssh/sshd_config
и перезапустить сервер SSH.Если у вас нет DISPLAY, проверьте, правильно ли установлен xauth, и попробуйте снова.
У RHE / CEntos такой проблемы нет, это Ubuntu!
источник
Для меня проблема была в опции монтирования nodev для / tmp файловой системы. X11 нужен специальный файл для создания там.
Так что проверьте, какие параметры монтирования для файловой системы / tmp, если вы используете для этого отдельный раздел или диск.
источник
Чтобы добавить к предыдущим отличным ответам (настройка
~/.ssh/config
и проверка, установлена лиDISPLAY
переменная окружения на клиенте, настройка/etc/ssh/sshd_config
и установкаxauth
на сервере), также убедитесь, чтоxterm
на клиенте установлена, например,источник
xauth
может быть заблокирован.С помощью
На машине, на которой я пытался
ssh
взломать замокxauth
. Выход изssh
сеанса после выдачи, аxauth -b
затем повторный вход, наконец, позволил мне успешноecho $DISPLAY
. Обязательно попробуйте это перед воссозданием.Xauthority
источник
X11Forwarding
должен быть установлен на SSH-сервере (в вашем случае на Ubuntu) в немsshd_config
, и вы должны разрешить пересылку X11 для SSH-клиента (вашего Fedora), передав-X
опцию или отредактировавssh_config
файл для добавленияForwardX11
значения по умолчанию.источник
xauth
установить его на удаленном компьютере, иначе программа x authorization не будет работать.DISPLAY
?$DISPLAY
еслиX11Forwarding
он включен иxauth
присутствует в клиентской системе.export DISPLAY=:10.0
но не иначе. В противном случае он жалуется, что не может найти:0
. Может быть, нужно что-то еще, чтобы это произошло автоматически?