как запустить gnome-terminal на удаленной машине centos 7?

как запустить gnome-terminal на удаленной машине centos 7?

Моя локальная машина — Linux Mint, а удаленная — Centos 7. Я пытаюсь открыть gnome-terminal на удаленной машине с помощью x-forwarding, но это не работает.

Когда я подключаюсь к хосту в интерактивном режиме

$ ssh -Y centos-host

Затем в открытом сеансе я могу запустить gnome-terminal и x-forwarding работает

$ gnome-terminal 
$ netstat -nltp
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      -  

Однако когда я пытаюсь бежать

$ ssh -Y centos-host gnome-terminal

Окно с терминалом GNOME открылось, но туннель для X не создан.

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -

У меня есть еще одна удаленная машина linux mint, и я не испытывал такой проблемы с ней. Так что, я думаю, что-то не так с centos 7.

Пожалуйста, помогите.
Спасибо.

решение1

Причина в том, что gnome-terminalон разветвляется в фоновом режиме. Если вы запустите его в интерактивном sshсеансе, вы заметите, что получаете новую командную строку, хотя терминал все еще открыт. В неинтерактивном случае, как только это произойдет, sshон подумает, что команда завершилась, и закроет сеанс, включая закрытие прослушивающего сокета X11 на сервере. Поскольку все еще есть активные соединения X11, sshон не выходит немедленно, поэтому онвыглядиткак будто сеанс все еще активен, однако новые соединения X11 не могут быть открыты.

Раньше вы могли сделать это с помощью gnome-terminal --disable-factory, однако, к сожалению, в какой-то момент это было удалено gnome-terminal. Теперь у вас есть два варианта:

  • Используйте другую терминальную программу, которая не уходит в фоновый режим, напримерxterm
  • Сразу после запуска gnome-terminal, в том же sshсеансе выполните команду, которая не завершается, напримерssh -Y server 'gnome-terminal; echo Press enter to exit; read'

решение2

Конфигурация:

  • CentOS Linux релиз 7.6.1810 (ядро)
  • /etc/ssh/sshd_configсодержит:
X11Forwarding yes

У меня работает следующая команда:

ssh -Y HOST bash -l -c gnome-terminal --display=${DISPLAY} < /dev/null > /dev/null  2>&1 &

Сообщенный gnome-terminal --disable-factoryмне --disable-factoryответ больше не поддерживался.

Связанный контент