私を助けてくれた@ jensd、@ unxnutに感謝します。あなたのコメントに基づいて、私は問題を理解することができました。
ソリューションには2つのステップが必要でした。
- DISPLAY変数を適切に設定する必要があります。
- リモートサーバーにSSH接続するときは、-Xスイッチがオンになっている必要があります
以前の試みでは、これらの2つの条件の一方または両方が欠けていました。
とにかく、これを見た後のユーザーのために、これは私が言いたいことをあなたに示すための例です。
case1
ローカルマシンにはDISPLAY変数が設定されていません。そして、-Xスイッチを使用してリモートサーバーにsshし、実行してみxclock
ます。
Black@Black-PC ~
$ echo $DISPLAY
## the blank means that DISPLAY variable has not been specified##
Black@Black-PC ~
$ ssh -X kwagjj@$labserver -p 122
Last login: Tue Jun 24 22:23:13 2014 from
[kwagjj@James5 ~]$ xclock
Error: Can't open display:
[kwagjj@James5 ~]$ setenv | grep $DISPLAY
DISPLAY: Undefined variable.
ご覧のError: Can't open display:
ように、リモートサーバーのターミナルにエラーが表示されます。
case2
今回は、ローカルマシンでDISPLAY変数を指定します。ただし、sshを実行しているときは、-Xスイッチをオンにしません。結果は失敗になります。
Black@Black-PC ~
$ export DISPLAY=:0.0
Black@Black-PC ~
$ echo $DISPLAY
:0.0
Black@Black-PC ~
$ ssh kwagjj@$labserver -p 122
Last login: Tue Jun 24 22:33:32 2014 from
[kwagjj@James5 ~]$ xclock
Error: Can't open display:
[kwagjj@James5 ~]$ setenv | grep DISPLAY
[kwagjj@James5 ~]$
最初に、DISPLAY変数が適切に設定されていることがわかります。ただし、ssh'ing(-Xスイッチなし)の後、xclockは実行されません。
*ここで異なる結果をsetenv | grep DISPLAY
見ることができます(case1と比較してください)。case2では、結果は単なる空白です。一方、このコマンドラインのcase1の結果はDISPLAY: undefined variable
...です。この違いがどのように発生するかはわかりませんが、条件1または2のいずれかを満たすかどうかに関連する予感を得ています。 。
case3
今回は、ローカルマシンでDISPLAY変数を適切に指定し、-Xスイッチをオンにしてリモートサーバーにsshを指定します。
Black@Black-PC ~
$ echo $DISPLAY
:0.0
Black@Black-PC ~
$ ssh -X kwagjj@$labserver -p 122
Warning: untrusted X11 forwarding setup failed: xauth key data not generated
Warning: No xauth data; using fake authentication data for X11 forwarding.
Last login: Tue Jun 24 22:37:27 2014 from
[kwagjj@James5 ~]$ xclock &
[1] 9174
[kwagjj@James5 ~]$ setenv | grep DISPLAY
DISPLAY=localhost:11.0
[kwagjj@James5 ~]$
この設定でxclock
動作します!! これは私が嘘をついていないことを証明するスクリーンショットです。
ローカルマシンでxclockが正常に表示されます。
setenv | grep DISPLAY
この場合も、結果を確認してください。現在表示されますDISPLAY=localhost:11.0
。私が知っていることから、これは.XauthorityファイルのMIT-MAGIC-COOKIEに関連していますが、これについてあまり知らないので、これ以上先に進みません。
結論:上記の3つのケースから、リモートXウィンドウを適切に表示するには、1。ローカルマシンのDISPLAY変数と2. ssh -X
スイッチの両方を適切に設定する必要があることを確認できます。もちろん、リモートサーバーはX11転送を許可する必要があります。