ローカル マシンは 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
サポートはもう終了しました。