web-dev-qa-db-ja.com

x11転送を使用するssh:外部ネットワークからは機能しません

私はラップトップとサーバーを持っています。同じLANネットワーク上で、次の方法でサーバーにX11転送を使用してSSH接続できます。

ssh -Y -C [email protected]

X11ウィンドウを開くものを実行すると、動作します。たとえば、xtermやchromium-browserなどです。

私のルーターでは、ポート22をサーバーに転送しています。したがって、ネットワークの外部にいるときは、次の方法でサーバーにSSH接続できます。

ssh [email protected]

問題は、X11を転送したいときです。フラグ「-Y-C」を追加してもログインできます。ただし、次のようなエラーが発生するため、ウィンドウは転送されません。-(chromium-browser:21079):Gtk-WARNING **:開くことができません。ディスプレイ:-xterm Xtエラー:ディスプレイを開くことができません:xterm:DISPLAYが設定されていません

以前は機能していたことを誓いますが、何らかの理由で現在は機能していません。私が最近考えることができる唯一の変更は、サーバー上のソフトウェアの更新でした(10.04から10.04への更新)。また、私のラップトップでは、最近ubuntu11.04にアップデートしました。

私はずっと前にこれを捕まえたであろうので、それは最近の問題でなければならないと思います。また、x11ウィンドウを開いたときに発生するすべてのエラーを思い出せません。他のサーバー(ネットワーク外、学校)で同様のことを試してみると、x11ウィンドウも開かない(以前は開いていた)ので、ラップトップに関係していると思います。

私はグーグルで検索しましたが、関連するものを罰することができませんでした。 X11転送は内部で機能するため、オンにする必要があります。外部的にはそうではありません。デバッグや修正についての提案を教えてください。

2
Vinh Nguyen

X11転送を有効にするための実際のフラグを指定していません。これは-Xです。 (-Yはそれを「信頼できる」モードに切り替えるだけです。)

私の推測では、いくつかのマシンでは~/.ssh/configまたは/etc/ssh/ssh_configでX11転送が有効になっているため、-Xを指定せずにそこから機能しました。

1
user1686

@grawity(コメントには長すぎます)

$ ssh -X -v -v -v [email protected]
OpenSSH_5.8p1 Debian-1ubuntu3, OpenSSL 0.9.8o 01 Jun 2010
debug1: Reading configuration data /home/username/.ssh/config
debug1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: auto-mux: Trying existing master
debug2: fd 3 setting O_NONBLOCK
debug2: mux_client_hello_exchange: master version 4
debug3: mux_client_request_forwards: requesting forwardings: 0 local, 0 remote
debug3: mux_client_request_session: entering
debug3: mux_client_request_alive: entering
debug3: mux_client_request_alive: done pid = 2616
debug3: mux_client_request_session: session request sent
debug1: mux_client_request_session: master session id: 3
$ xterm
xterm Xt error: Can't open display: 
xterm:  DISPLAY is not set

$ exit
logout
debug1: mux_client_request_session: master session id: 3
debug3: mux_client_read_packet: read header failed: Broken pipe
debug2: Received exit status from master 1
Shared connection to external.ip closed.

私はただ何かを実現しました。私が試しているこれらのサーバーのいくつかでSSHFSを使用しています(いくつかのディレクトリをマウントしています)。 〜/ .ssh/configにも次のものがあります。

Host *
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p

単一のセッションを存続させる(そしてそれを使い続ける)。 SSHFSからの最初のセッションでX11転送が設定されていない可能性があります。

1
Vinh Nguyen