我的本地机器是 linux mint,远程机器是 centos 7。我尝试使用 x-forwarding 在远程机器上打开 gnome-terminal,但它不工作。
当我以交互模式连接到主机时
$ 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'
配置:
/etc/ssh/sshd_config
包含:以下命令对我有用:
不再支持
gnome-terminal --disable-factory
通知我。--disable-factory