Назад | Перейти на главную страницу

как запустить 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 что-то не так.

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

Причина в том, что 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'

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

  • CentOS Linux, выпуск 7.6.1810 (Core)
  • /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 больше не поддерживалось.