X11転送が機能しない - エラー:ディスプレイを開くことができません:localhost:11.0

X11転送が機能しない - エラー:ディスプレイを開くことができません:localhost:11.0

LM 17 Xfce OpenSSH_6.6.1p1 Ubuntu-2ubuntu2

あちこちでインターネット検索をしてみても正常に動作しないようです。このエラーは引き続き発生します。

$ xlogo
Error: Can't open display: localhost:10.0

デバッグ転送 x11 と sshd 汎用インスタンスを使用して、両方のタイプの接続を試みました。

ssh -Y remotehost -p 2500  
ssh -X remotehost -p 2500 

サーバー構成では、x11 転送が許可されます。
デバッグから新しい sshd インスタンスでテストするときに接続すると、この内容が表示されます。デバッグに関連する唯一の部分は次のとおりです。

debug1: channel 1: new [X11 inet listener]
debug1: channel 2: new [X11 inet listener]  

ディスプレイが設定されました

$ echo $DISPLAY
localhost:10.0

ユーザーはsudoアクセス権を持つ標準ユーザーです。それ以外の場合は問題ありません(すべてのcliがうまく機能します)

また、私は多重接続を使用せず、
直接接続するときにx11転送(ssh -X 127.0.0.1)を使用できます。
接続中に ssh -v を使用すると、エラーが発生したときに有用なフィードバックは提供されなくなります。
私が試してみることができないものを逃した場合は、教えてください。混乱しています。

編集する:

$ netstat -l | grep 6010

tcp        0      0 ip6-localhost:6010      *:*                 LISTEN     
tcp6       0      0 ip6-localhost:6010      [::]:*              LISTEN  

また、サーバー上でssh -X 127.0.0.1を実行しましたが、次のものが出力されました。

Warning: No xauth data; using fake authentication data for X11 forwarding.

xauth リスト。このプライバシーに興味を持たなければなりませんか?私はatmに何を投稿したのかわかりません。

remotehostname/unix:14  MIT-MAGIC-COOKIE-1  70f068c8dd2431088bcxxxxxxxxx
remotehostname/unix:13  MIT-MAGIC-COOKIE-1  be500209ccb9fb769eexxxxxxxxx
remotehostname/unix:12  MIT-MAGIC-COOKIE-1  01fc30e4887501602ebxxxxxxxxx
remotehostname/unix:11  MIT-MAGIC-COOKIE-1  d04f849725f71070095xxxxxxxxx
remotehostname/unix:10  MIT-MAGIC-COOKIE-1  42e99c898ef9aa295b4xxxxxxxxx

localhostを最初に入れるように/ etc / hostsファイルを変更しました。これで追加のメッセージが届きました。役に立つかどうかを確認するために再起動もしました。

127.0.0.1 localhost remotehostname localhost.localdomain
::1 localhost ip6-localhost ip6-loopback


X11 connection rejected because of wrong authentication.
Error: Can't open display: localhost:10.0

~/.Xauthority ファイルを削除しましたが、自動的に生成されないことを確認しました。私はRaspberry Piでこれをテストしましたが、警告が表示され、〜/ .Xauthorityファイルが生成されました。リモートホストではこの問題は発生しません。しかし、それを生成する権限は大丈夫です。

答え1

$DISPLAY設定が正しく、ファイルが生成されなかったため、~/.XauthorityX11転送を検討しましたが、xauth実行されていない可能性があります。 1つの理由はパスにないためです(Mac OS Xではこの問題がありましたが、Linuxでは奇妙です)。ファイルを作成して直接これを実行することもできます~/.ssh/rc。たとえば、次のようなものがあります。

if [ -n "$DISPLAY" ]; then
  echo "DISPLAY: $DISPLAY" >&2
  if read proto cookie; then
    if [ `echo $DISPLAY | cut -c1-10` = 'localhost:' ]; then
      echo add unix:`echo $DISPLAY | cut -c11-` $proto $cookie
    else
      echo add $DISPLAY $proto $cookie
    fi | $HOME/.ssh/xauth.wrapper -q -
  fi
fi

その中には、ファイルロックを実装する~/.ssh/xauth.wrapperラッパーがあります。ただし、場合はパス名またはフルパス名を使用できます。これは、sshd(8)のマニュアルページ(「SSHRC」セクションを参照)で説明されているものと非常によく似ています。xauth~/.Xauthorityxauthxauth

間違えないように注意してください。

関連情報