私は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
があります。ただし、認証ファイルに対する権限は適用されません。rw
600
ユーザーはこのxauth
プログラムを使用して認証Cookieを一覧表示、エクスポート、作成、または削除できます。次のコマンドはですDISPLAY 32
。
xauth add localhost:32 - `mcookie`
X11転送を使用するときは、通常、クッキーを手動で作成して操作する必要はありません。これは、X11プロキシがリモートコンピュータで起動され、認証Cookieがローカルモニタに自動的に作成されるssh
ためです。ssh
ただし、一部の構成では、認証 Cookie を手動で作成し、ローカル コンピューターにコピーする必要があります。
これは、セッション内で実行された次のssh
Cookiescp
をコピーするために使用できます。
ssh
リモート・システムに入りなさい:
ssh -XY user@remote
現在X11ディスプレイを確認して、認証Cookieがあることを確認してください。
echo $DISPLAY
xauth list
名前付き環境変数がないと、$DISPLAY
X11エージェントは正しく起動できません。これは通常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を使用してインストールされているすべての項目は機能しません。だからxeyes
andはxclock
うまくいくかもしれませんが、Ubuntuを新しくインストールしchromium-browser
たり、firefox
Ubuntuでは動作しません。これは、HOME="$SNAP_USER_DATA"
XがXauthorityファイルがあると予想する場所を妨げるSnapのデフォルト設定に関連しています。
回避策は、単に以下を行うことです。
export XAUTHORITY=$HOME/.Xauthority
リモートX11アプリケーションを実行する前。
su
また、root以外のユーザーとして接続してアプリケーションを/ runを使用しようとすると、sudo
同じエラーが発生する可能性があります。
なぜなら
バイナリは変数と[ユーザー]ファイル
xauth
の組み合わせを使用します。$DISPLAY
/home/.Xauthority
この組み合わせが現在のユーザーと一致しなくなったため、このエラーが表示されます。
答え3
GUIを使いたかったソフトウェアをインストールしようとしたときにこの問題に遭遇しました(つまり、GUIなしでインストールする方法が見つかりませんでした)。私の問題は、実行可能ファイルを実行しsudo
てsudo
誤って認証しようとしていることです。
ヒント: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を実行できました。