修正する

修正する

私のローカルコンピュータからリモートサーバーへのssh認証とXディスプレイの認証。このプロセスで使用されることがわかっており、MIT-MAGIC-COOKIES認証プロセスが機能するには、サーバーとクライアントの値が同じでなければなりません。

ところで、リモートサーバーにログインして確認してみるとxclockxclock

リモートサーバーのCookie値

chulhyun@chulhyun-Inspiron-3420:~$ ssh -X Black@$labcom
Last login: Wed Jun 25 10:02:25 2014 from 

Black@Black-PC ~
$ xclock    ### xclock appears in local machine.

Black@Black-PC ~
$ xauth list
Black-PC/unix:10  MIT-MAGIC-COOKIE-1  708f623489b1ea129a77e98287d130ca

ローカルコンピュータのCookie値

chulhyun@chulhyun-Inspiron-3420:~$ xauth list
chulhyun-Inspiron-3420/unix:0  MIT-MAGIC-COOKIE-1  5ddd2ce92004eab53ceee8a64b7b88c0

ご覧のとおり、クッキーの値は両方のコンピュータで異なります。それでは、Xモニターが機能しないようにする必要はありませんか?

私がここで何を見逃しているのでしょうか?

$XAUTHORITYPS:ファイルへのパスがあると聞き、xauthorityローカルコンピュータでパスを確認しました。

chulhyun@chulhyun-Inspiron-3420:~$ echo $XAUTHORITY
/var/run/gdm/auth-for-chulhyun-iZfH2u/database

「データベース」ファイルを表示すると、内容が奇妙な文字で構成されているため、内容を読み取ることができません。

^A^@^@^Vchulhyun-Inspiron-3420^@^A0^@^RMIT-MAGIC-COOKIE-1^@^P]?,? ^D??<???      K{??

これが問題に関連している可能性がありますか?


修正する

リモートサーバーxhostの結果$XAUTHORITY

Black@Black-PC ~
$ xhost
access control enabled, only authorized clients can connect
SI:localuser:chulhyun

Black@Black-PC ~
$ echo $XAUTHORITY

*定義されていないことが判明しました$XAUTHORITY...これは正常ですか?

xhostローカルコンピュータの結果

chulhyun@chulhyun-Inspiron-3420:~$ xhost
access control enabled, only authorized clients can connect
SI:localuser:chulhyun

ベストアンサー1

SSHがリモートサーバー側に確立されたトンネルを介してX11接続のプロキシを実行する方法と、マジックCookieが通常どのように機能するかについて混乱しているようです。 SSHのマニュアルページから:

抜粋
The DISPLAY value set by ssh will point to the server machine, but with a 
display number greater than zero.  This is normal, and happens
because ssh creates a “proxy” X server on the server machine for forwarding 
the connections over the encrypted channel.

ssh will also automatically set up Xauthority data on the server machine.  
For this purpose, it will generate a random authorization cookie,
store it in Xauthority on the server, and verify that any forwarded 
connections carry this cookie and replace it by the real cookie when the
connection is opened.  The real authentication cookie is never sent to the 
server machine (and no cookies are sent in the plain).

したがって、リモートサーバー側に表示されるマジッククッキーは、実際にはローカルサーバー(ユーザー側)にある実際のマジッククッキーではないようです。 SSH経由でリモートサーバーに接続すると、DISPLAYが次のように設定されることに注意してください。

$ echo $DISPLAY
localhost:11.0

マジッククッキーは次のように接続されています$DISPLAY

$ xauth list
remotey.dom.com/unix:11  MIT-MAGIC-COOKIE-1  00f505f4c5731714d30f24a956d4cb8f

私たちが聞くのはです/unix:11。これは、通常発生するローカルサーバーのX11ではなく、SSH接続のローカル側のためのマジッククッキーです:0

.X 権限

ファイルにマジッククッキーが含まれているのは事実ですが、バイナリファイルであり、通常はコマンドを介して対話しますxauth。これについての詳細は、xauthマニュアルページを参照してください。

手動で

通常、次の操作を行うと、このメッセージが表示されます。

$ ssh -X user1@remotey
$ su - user2
$ xclock

X11 connection rejected because of wrong authentication.
X connection to localhost:10.0 broken (explicit kill or server shutdown).

これは、2人目のユーザーが.Xauthority初めてログインしたときにSSHを介して渡されたマジッククッキーについて何も知らないためです。xauth adduser1として必要なものを作成し、次のようにuser2として使用できます。

$ ssh -X user1@remotey
$ echo $DISPLAY
localhost:10.0

上には#が表示されています:10.0。これでxauth add、このディスプレイに必要な#を作成します。

$ echo xauth add $(xauth list ${DISPLAY#localhost})
xauth add remotey.dom.com/unix:10 MIT-MAGIC-COOKIE-1 111ef940f6d75b4a9eb64ea3579ef67e

それではuser2になり、追加してください。

$ su - user2
$ xauth add remotey.dom.com/unix:10 MIT-MAGIC-COOKIE-1 111ef940f6d75b4a9eb64ea3579ef67e
$ xclock

予想される時計マークを取得します。

メモ:上記を学んだら、単一のコマンドラインで操作を実行できます。

suを使う
$ xauth extract - ${DISPLAY#localhost} | \
    su - user2 -c "xauth merge -; xclock"
sudoを使う
$ xauth extract - ${DISPLAY#localhost} | \
    sudo su - user2 -c "xauth merge -; xclock"

引用する

おすすめ記事