私はラップトップとサーバーを持っています。同じLANネットワーク上で、次の方法でサーバーにX11転送を使用してSSH接続できます。
ssh -Y -C [email protected]
X11ウィンドウを開くものを実行すると、動作します。たとえば、xtermやchromium-browserなどです。
私のルーターでは、ポート22をサーバーに転送しています。したがって、ネットワークの外部にいるときは、次の方法でサーバーにSSH接続できます。
問題は、X11を転送したいときです。フラグ「-Y-C」を追加してもログインできます。ただし、次のようなエラーが発生するため、ウィンドウは転送されません。-(chromium-browser:21079):Gtk-WARNING **:開くことができません。ディスプレイ:-xterm Xtエラー:ディスプレイを開くことができません:xterm:DISPLAYが設定されていません
以前は機能していたことを誓いますが、何らかの理由で現在は機能していません。私が最近考えることができる唯一の変更は、サーバー上のソフトウェアの更新でした(10.04から10.04への更新)。また、私のラップトップでは、最近ubuntu11.04にアップデートしました。
私はずっと前にこれを捕まえたであろうので、それは最近の問題でなければならないと思います。また、x11ウィンドウを開いたときに発生するすべてのエラーを思い出せません。他のサーバー(ネットワーク外、学校)で同様のことを試してみると、x11ウィンドウも開かない(以前は開いていた)ので、ラップトップに関係していると思います。
私はグーグルで検索しましたが、関連するものを罰することができませんでした。 X11転送は内部で機能するため、オンにする必要があります。外部的にはそうではありません。デバッグや修正についての提案を教えてください。
X11転送を有効にするための実際のフラグを指定していません。これは-X
です。 (-Y
はそれを「信頼できる」モードに切り替えるだけです。)
私の推測では、いくつかのマシンでは~/.ssh/config
または/etc/ssh/ssh_config
でX11転送が有効になっているため、-X
を指定せずにそこから機能しました。
@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転送が設定されていない可能性があります。