SSH в vagrant с настройкой X-сервера
у меня возникают проблемы с настройкой переадресации X11 на vagrant VM.
я запускаю Xming для X-сервера и шпатлевки в качестве моего SSH-клиента.
вот что я получаю, когда я запускаю vagrant ssh-config
:
Host default
HostName 127.0.0.1
User vagrant
Port 2200
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile C:/Users/MyName/.vagrant.d/insecure_private_key
IdentitiesOnly yes
LogLevel FATAL
ForwardAgent yes
ForwardX11 yes
мой шпатлевки перенаправление X11 с поддержкой и Х расположение экрана 0.0
.
когда я делаю echo $DISPLAY
Я не получаю никакого ответа.
Я не уверен, что я настроил неправильно. Я последовал за советы in настройка моего клиента шпаклевки. Если есть более простой способ настроить VM с переадресацией X11, пожалуйста, дайте мне знать.
Для справки это содержимое моей Vagrantfile
.
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.ssh.forward_agent = true
config.ssh.forward_x11 = true
end
3 ответов
у меня была очень похожая проблема, но в моем случае это была проблема с Vagrant VM. Вот некоторые вещи, чтобы проверить:
-
X11Forwarding
необходимо указатьyes
на/etc/ssh/sshd_config
- включить подробный журнал для ssh (
vagrant ssh -- -vvv -X
в Linux у Putty также есть-v
флаг командной строки) и искать интересные сообщения.
С моим бродячим VM последний показал следующее сообщение:
debug1: Remote: No xauth program; cannot forward with spoofing
после установки пакет, который обеспечивает xauth
(xorg-xauth
, xorg-x11-xauth
или подобный), vagrant ssh -- -X
работала нормально.
установите Cygwin со следующими пакетами, чтобы решить проблему, как указано в этом сайт:
- настройка xorg-сервера
- xinit
- xorg-docs (для документации)
- openssh (в случае, если это не было установлено ранее)
затем загрузите окно с помощью startxwin
с терминала cygwin.
примечание, которое я обнаружил позже, заключается в том, что лучше ssh в vagrant, используя следующее команда:
vagrant -Y ssh
чем:
vagrant -X ssh
последнее выполняется в ненадежном режиме, как в этом ответ и через некоторое время.
используйте "startxwin"для запуска сервера cygwin X. Используйте putty или клиент cygwin ssh для ssh на гостевой виртуальной машине.
Если вы используете cygwin ssh, сделайте "export DISPLAY=: 0" перед запуском ssh (т. е. "vagrant ssh -- -vvv-X").
для putty: запустите "startxwin -- - listen tcp", включите пересылку ssh-X11 в конфигурации соединения putty, установите" X display location "в" localhost:0 " и установите правильный путь .Файл Xauthority (обзор, вероятно, находится в вашем домашнем каталоге; выход startxwin скажет вам, где).
возможно, не используйте msys2 ssh (установленная по умолчанию среда vagrant-msys2, но vagrant также отлично работает под cygwin) с сервером cygwin X. (подробнее о том, почему)
детали:
Если вы получаете " connect/tmp/.X11-unix/X0: нет такого файла или каталога "(в режиме SSH verbose) или putty error "Putty X11 proxy: невозможно подключиться к перенаправленному X-серверу: ошибка сети: соединение отказано", попробуйте использовать сокеты tcp, а не сокеты домена unix по умолчанию.
при запуске Cygwin X server перейдите в раздел "X-listen tcp-multiwindow" (multiwindow не является обязательным - он открывает новые окна для каждого приложения).
при использовании openssh " ssh "из командной строки: перед переходом" vagrant ssh -- -vvv-X "перейдите в" export DISPLAY=localhost:0 "(не": 0", а" localhost:0", поэтому он использует tcp). Я запускаю Git bash, который использует msys2, который, похоже, не связывается должным образом с моим сервером cygwin X эмулированные доменные сокеты unix. Но если я использую "vagrant ssh -- - X" под моей подсказкой cygwin (с DISPLAY=:0 для сокетов домена unix), он работает.
отличный источник информации:http://dustwell.com/how-x-over-ssh-really-works.html
кроме того, вы можете добавить "config.тсс.forward_x11 = true " для вашего Vagrantfile. Я думаю, что это устанавливает X11Forwarding в /etc/ssh / sshd_config при настройке гостевой виртуальной машины или запуске "vagrant reload". - https://coderwall.com/p/ozhfva/run-graphical-programs-within-vagrantboxes
Update: Не рекомендуется запускать X без безопасности xauth (как показано выше). Это небезопасно. Например, другие компьютеры в той же локальной сети могут подключаться к x-серверу через tcp и обнюхивать нажатия клавиш с помощью xkeys. Используйте " startxwin "вместо запуска X напрямую, поэтому он использует опцию"- auth " XWin. Это затрудняет мне получение моего msys2 ssh для перенаправления X на мой cygwin X сервер. Журнал ssh при подключении говорит, что он не может найти команду xauth - это потому, что она отсутствует в моей среде msys2. Cygwin ssh X-redirection по-прежнему работает нормально. Замазка отлично работает, пока вы устанавливаете .Путь к файлу Xauthority (вероятно, он находится прямо в вашем домашнем каталоге)в конфигурации сеанса putty.
Я обнаружил, что проблема/решение сокета tcp/unix-домена на самом деле находится в faq cygwin (этот faq довольно полезен и имеет много информации):
6.7. Икс сеансы, перенаправленные PuTTY, не могут подключиться. Не-cygwin локальные клиенты X не могут подключиться.
сервер X теперь использует-nolisten tcp по умолчанию, что повышает безопасность сервера X, не открывая сокет TCP/IP, только локальный (домен UNIX) сокет. Приложения, отличные от cygwin, не могут подключиться к этому сокету.