リモート CentOS 7 マシンで gnome-terminal を実行するにはどうすればいいですか?

リモート CentOS 7 マシンで gnome-terminal を実行するにはどうすればいいですか?

ローカル マシンは 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 に問題があると思います。

助けてください。
ありがとうございます。

答え1

理由は、gnome-terminalがバックグラウンドにフォークするからです。対話型セッションで実行するとssh、ターミナルがまだ開いているにもかかわらず、新しいコマンドプロンプトが表示されることに気づくでしょう。非対話型の場合、これが発生するとすぐに、 はsshコマンドが終了したとみなし、サーバー上のリスニングX11ソケットを閉じるなど、セッションを閉じます。アクティブなX11接続がまだあるため、sshはすぐに終了しません。見た目セッションはまだアクティブであるかのように動作しますが、新しい X11 接続を開くことはできません。

以前は を使用してこれを行うことができましたが、残念ながらこれはある時点gnome-terminal --disable-factoryで から削除されました。現在は 2 つのオプションがあります。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サポートはもう終了しました。

関連情報