SSH接続。認証エラーのため X11 接続が拒否されました。

SSH接続。認証エラーのため X11 接続が拒否されました。

私はSSHを通して私の研究室のクラスタにアクセスしようとしたときにうまくいきました。しかし、私は何もできません:

user@users:~> nautilus
X11 connection rejected because of wrong authentication.
Could not parse arguments: Cannot open display

または

user@users:~> gedit
X11 connection rejected because of wrong authentication.

(gedit:151222): Gtk-WARNING **: cannot open display: localhost:11.0

それは今日まで働いています...変更があるかどうかを確認する方法がわかりません。このコンピュータのルートパスワードはありません。私ができることはありますか?

このエラーについては、次の内容をたくさん読んでいますが、何も問題を解決できません。

編集する:

ローカルオペレーティングシステムはUbuntu 16で、サーバーはOpenSuseです。私はそう接続します。

ssh -XY -p22 [email protected]

編集2:

user@users:~> env
MODULE_VERSION_STACK=3.1.6
LESSKEY=/etc/lesskey.bin
NNTPSERVER=news
INFODIR=/usr/local/info:/usr/share/info:/usr/info
MANPATH=/usr/local/man:/usr/share/man
HOSTNAME=users
XKEYSYMDB=/usr/share/X11/XKeysymDB
HOST=users
TERM=xterm-256color
SHELL=/bin/bash
PROFILEREAD=true
HISTSIZE=1000
SSH_CLIENT=10.44.0.1 49729 22
MORE=-sl
SSH_TTY=/dev/pts/2
JRE_HOME=/usr/lib64/jvm/jre
USER=user
LS_COLORS=no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.lzma=00;31:*.zip=00;31:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.wmv=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32:
LD_LIBRARY_PATH=/usr/local/cuda-5.5/lib:/usr/local/cuda-5.5/lib64:
XNLSPATH=/usr/share/X11/nls
ENV=/etc/bash.bashrc
HOSTTYPE=x86_64
FROM_HEADER=
MSM_PRODUCT=MSM
PAGER=less
CSHEDIT=emacs
XDG_CONFIG_DIRS=/etc/xdg
MINICOM=-c on
MODULE_VERSION=3.1.6
MAIL=/var/mail/user
PATH=/usr/local/cuda-5.5/bin:/home/user/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib64/jvm/jre/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin
CPU=x86_64
JAVA_BINDIR=/usr/lib64/jvm/jre/bin
INPUTRC=/home/user/.inputrc
PWD=/home/user
JAVA_HOME=/usr/lib64/jvm/jre
LANG=en_US.UTF-8
PYTHONSTARTUP=/etc/pythonstart
MODULEPATH=/usr/share/modules:/usr/share/modules/modulefiles
LOADEDMODULES=
QT_SYSTEM_DIR=/usr/share/desktop-data
SHLVL=1
HOME=/home/user
LESS_ADVANCED_PREPROCESSOR=no
OSTYPE=linux
LS_OPTIONS=-N --color=tty -T 0
XCURSOR_THEME=DMZ
MSM_HOME=/usr/local/MegaRAID Storage Manager
WINDOWMANAGER=/usr/bin/gnome
G_FILENAME_ENCODING=@locale,UTF-8,ISO-8859-15,CP1252
LESS=-M -I
MACHTYPE=x86_64-suse-linux
LOGNAME=user
XDG_DATA_DIRS=/usr/share:/etc/opt/kde3/share:/opt/kde3/share
SSH_CONNECTION=172.17.10.15 22
MODULESHOME=/usr/share/modules
LESSOPEN=lessopen.sh %s
INFOPATH=/usr/local/info:/usr/share/info:/usr/info
DISPLAY=localhost:12.0
XAUTHLOCALHOSTNAME=users
LESSCLOSE=lessclose.sh %s %s
G_BROKEN_FILENAMES=1
JAVA_ROOT=/usr/lib64/jvm/jre
COLORTERM=1
_=/usr/bin/env

答え1

Xauthorityミニの使い方

X11ディスプレイサーバーを実行しているGNU / Linuxシステムでは、このファイルには~/.Xauthorityディスプレイへの接続を承認するために使用される認証Cookieまたは暗号化キーが格納されます。ほとんどの場合、認証メカニズムは対称クッキーと呼ばれる対称クッキーですMagic Cookie。サーバーとクライアントは同じCookieを使用します。

各X11認証Cookieは、そのシステムの認証されたユーザーによって制御されます。認証Cookieはプレーンテキストセキュリティトークンとして保存されるため、ファイルの権限は8進形式で所有者にのみ適用する必要~/.Xauthorityがあります。ただし、認証ファイルに対する権限は適用されません。rw600

ユーザーはこのxauthプログラムを使用して認証Cookieを一覧表示、エクスポート、作成、または削除できます。次のコマンドはですDISPLAY 32

xauth add localhost:32 - `mcookie`

X11転送を使用するときは、通常、クッキーを手動で作成して操作する必要はありません。これは、X11プロキシがリモートコンピュータで起動され、認証Cookieがローカルモニタに自動的に作成されるsshためです。sshただし、一部の構成では、認証 Cookie を手動で作成し、ローカル コンピューターにコピーする必要があります。

これは、セッション内で実行された次のsshCookiescpをコピーするために使用できます。

sshリモート・システムに入りなさい:

ssh -XY user@remote

現在X11ディスプレイを確認して、認証Cookieがあることを確認してください。

echo $DISPLAY
xauth list

名前付き環境変数がないと、$DISPLAYX11エージェントは正しく起動できません。これは通常DISPLAY 0ローカルにログインしたユーザーで、xserverがローカルで起動したときにのみ実行されますxinit。 X11転送を有効にするためにX11サーバーをローカルで起動する必要はありませんssh

$DISPLAY環境変数が設定されているが、対応するディスプレイ番号に対応する認証Cookieがない場合は、次のように1つを作成できます。

xauth add $DISPLAY - `mcookie`

今クッキーがあることを確認してください。

xauth list

Cookieをコピーしてコンピュータからローカルにマージできます。

user@remote> xauth nextract ~/xcookie $DISPLAY
user@remote> exit
user@local> scp user@remote:~/xcookie ~/xcookie
user@local> xauth nmerge ~/xcookie

次に、クッキーがインストールされていることを確認します。

user@local> xauth list

X11転送SSH接続を試してください。

ガイドライン~/.Xauthority

~/.Xauthorityユーザーがアクセスできる各ディスプレイのすべての認証情報を含むバイナリファイル。各レコードは2バイトで区切られています0x0100。各フィールドの前には、フィールドのバイト数が16進数で表示されます。すべてのテキストは16進ASCIIでエンコードされます。次の表は、MIT MAGIC COOKIE認証の最も一般的な構成の基本構造です。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 0100              0004        61616161           0002           3435                    0012          4d49542d4d414749432d434f4f4b49452d31   0010          c0bdd1c539be89a2090f1bbb6b414c2c 
----------------- ----------- ------------------ ------------  ----------------------  -------------  -------------------------------------- ------------ ---------------------------------------
 start-of-record   0xNumBytes  0xASCII Hostname   0xNumBytes     0xASCII Display Num     0xNumBytes    0xASCII Auth Type                      0xNumBytes    0xkey
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

一番上の行はコマンドを介して~/.Xauthorityファイルxauth nlistから検索できます。もちろん、あなたの認証ファイルには私の例とは異なる情報が含まれています。

セキュリティ拡張機能が X11 サーバーで使用される場合、各認証ラインには、Cookie ごとのタイムアウト認証を含む複数の構成オプションがあります。

答え2

説明どおりここxauth、長いウサギの洞窟に陥らないように、今はまったく異なる理由で同様の症状が現れていることを指摘したいと思います。

Snapを使用してインストールされているすべての項目は機能しません。だからxeyesandはxclockうまくいくかもしれませんが、Ubuntuを新しくインストールしchromium-browserたり、firefoxUbuntuでは動作しません。これは、HOME="$SNAP_USER_DATA"XがXauthorityファイルがあると予想する場所を妨げるSnapのデフォルト設定に関連しています。

回避策は、単に以下を行うことです。

export XAUTHORITY=$HOME/.Xauthority

リモートX11アプリケーションを実行する前。


suまた、root以外のユーザーとして接続してアプリケーションを/ runを使用しようとすると、sudo同じエラーが発生する可能性があります。

なぜなら

バイナリは変数と[ユーザー]ファイルxauthの組み合わせを使用します。$DISPLAY/home/.Xauthority

この組み合わせが現在のユーザーと一致しなくなったため、このエラーが表示されます。


答え3

GUIを使いたかったソフトウェアをインストールしようとしたときにこの問題に遭遇しました(つまり、GUIなしでインストールする方法が見つかりませんでした)。私の問題は、実行可能ファイルを実行しsudosudo誤って認証しようとしていることです。

ヒント:xhost次のコマンドを使用してください。

このコマンドは、xhostユーザーにX11接続アクセス権があるかどうかを知らせるので便利です。

私の場合、ユーザーは次のものにアクセスできます。

fred@machinename $ xhost
access control disabled, clients can connect from any host
SI:localuser:fred

ただし、次を使用すると、次のものsudoにアクセスできなくなります。

fred@machinename $ sudo xhost
X11 connection rejected because of wrong authentication.
xhost:  unable to open display "localhost:10.0"

これを理解した後、私が実行しているプログラムにsudo認証エラーが発生する理由について説明しました。

私のソリューション

この問題を解決するために、次のことを行いました。

価値を得る$DISPLAY

fred@machinename $ echo $DISPLAY
localhost:10.0

の数字と一致するマジッククッキーの値を取得します$DISPLAY。私の場合は、次の値です10

fred@machinename $ xauth list
machinename:4  MIT-MAGIC-COOKIE-1  e76c006944a28a5dbd3c54a0deadbeef
machinename/unix:4  MIT-MAGIC-COOKIE-1  e76c006944a28a5dbd3c54a0deadbeef
machinename/unix:10  MIT-MAGIC-COOKIE-1  cdead42e9b4c159505c0c830deadbeef

ユーザーをrootに変更します。

fred@machinename $ sudo su -

XauthorityにマジックCookie値を追加します。

root@machinename # xauth add gcashvapp511u/unix:10  MIT-MAGIC-COOKIE-1  cdead42e9b4c159505c0c830deadbeef

正しく追加されたことを確認してください。

root@machinename # cat ~/.Xauthority 
machinename10MIT-MAGIC-COOKIE-1���.�L���0[���[root@machinename ~]# export DISPLAY=localhost:10.0

動作していることを確認してください。

root@machinename # xhost
access control disabled, clients can connect from any host
SI:localuser:fred

その後、プログラムをrootとして実行し、ついにインストールに必要なGUIを実行できました。

関連情報