私のホームサーバーでSSHを介したX11転送を設定しようとしています。
サーバーはmoonraker
ヘッドレス構成でDebian Jessie(ホスト名)を実行しています。
私のクライアントはOS X 10.10を実行しています。以前は、このクライアントを使用して別のサーバーでX11転送を使用したことがあるため、問題は私のMacにあるようではありません。
このタスクを実行した後に表示される正確なエラーメッセージxclock
は次のとおりです。
X11 connection rejected because of wrong authentication.
Error: Can't open display: localhost:10.0
インターネット検索後、次のことを確認しました。
1)$ ls -lA ~/.Xauthority
-rw------- 1 ssunder ssunder 55 Sep 21 21:53 /home/ssunder/.Xauthority
2)$ grep X11 /etc/ssh/sshd_config
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
3)私の顧客は~/.ssh/config
次のとおりです。
ForwardX11 yes
ForwardX11Trusted yes
4)$ xauth list
moonraker/unix:10 MIT-MAGIC-COOKIE-1 d7e2e4a8c5aa4430bfcc2abb436940d2
5)sshd
デバッグレベル2で実行:# cat /var/log/auth.log | grep sshd | tail -n 100 | less
Sep 21 22:19:57 moonraker sshd[20089]: debug1: X11 connection requested.
Sep 21 22:19:57 moonraker sshd[20089]: debug2: fd 10 setting TCP_NODELAY
Sep 21 22:19:57 moonraker sshd[20089]: debug2: fd 10 setting O_NONBLOCK
Sep 21 22:19:57 moonraker sshd[20089]: debug1: channel 3: new [X11 connection from ::1 port 34632]
Sep 21 22:19:57 moonraker sshd[20089]: debug2: channel 3: open confirm rwindow 2097152 rmax 16384
Sep 21 22:19:57 moonraker sshd[20089]: debug2: channel 3: rcvd eof
Sep 21 22:19:57 moonraker sshd[20089]: debug2: channel 3: output open -> drain
Sep 21 22:19:57 moonraker sshd[20089]: debug2: channel 3: obuf empty
Sep 21 22:19:57 moonraker sshd[20089]: debug2: channel 3: close_write
Sep 21 22:19:57 moonraker sshd[20089]: debug2: channel 3: output drain -> closed
Sep 21 22:19:57 moonraker sshd[20089]: debug2: channel 3: rcvd close
Sep 21 22:19:57 moonraker sshd[20089]: debug2: channel 3: close_read
Sep 21 22:19:57 moonraker sshd[20089]: debug2: channel 3: input open -> closed
Sep 21 22:19:57 moonraker sshd[20089]: debug2: channel 3: send close
Sep 21 22:19:57 moonraker sshd[20089]: debug2: channel 3: is dead
Sep 21 22:19:57 moonraker sshd[20089]: debug2: channel 3: garbage collecting
Sep 21 22:19:57 moonraker sshd[20089]: debug1: channel 3: free: X11 connection from ::1 port 34632, nchannels 4
また、何を確認するのか知っていますか?
答え1
サーバーのユーザーがカスタム.ssh/rc
ファイルを持っている場合、または非標準/etc/ssh/sshrc
ファイルを持っている場合、xauthコンテンツは正しく設定されません。
sshd
マニュアルページから:
If the file ~/.ssh/rc exists, sh(1) runs it after reading the environment
files but before starting the user's shell or command. It must not pro‐
duce any output on stdout; stderr must be used instead. If X11 forward‐
ing is in use, it will receive the "proto cookie" pair in its standard
input (and DISPLAY in its environment). The script must call xauth(1)
because sshd will not run xauth automatically to add X11 cookies.
カスタムファイルが必要な場合は、rc
そのファイルに追加するか、マニュアルページから追加してください。
if read proto cookie && [ -n "$DISPLAY" ]; then
if [ `echo $DISPLAY | cut -c1-10` = 'localhost:' ]; then
# X11UseLocalhost=yes
echo add unix:`echo $DISPLAY |
cut -c11-` $proto $cookie
else
# X11UseLocalhost=no
echo add $DISPLAY $proto $cookie
fi | xauth -q -
fi
答え2
このエラーメッセージが表示された場合、最初に確認する必要があるのはディスクがいっぱいかどうかです。
ディスクがいっぱいになると、SSHにキーを追加できません.Xauthority
。これにより認証エラーが発生します。