X11 Problemas de Encaminhamento - Autenticação Errada

1

Estou tentando configurar o encaminhamento do X11 por meio do SSH no meu servidor doméstico.

O servidor está executando o Debian Jessie (hostname moonraker ) em uma configuração headless.

Meu cliente está executando o OS X 10.10. Eu usei o encaminhamento do X11 em outros servidores antes deste cliente, então não acho que o problema esteja no meu Mac.

A mensagem de erro exata que recebo depois de executar xclock é:

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

Após algumas pesquisas, verifiquei o seguinte:

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) O ~/.ssh/config do meu cliente contém:

ForwardX11 yes
ForwardX11Trusted yes

4) $ xauth list

moonraker/unix:10  MIT-MAGIC-COOKIE-1  d7e2e4a8c5aa4430bfcc2abb436940d2

5) Executando sshd com nível de depuração 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

Alguma ideia do que mais devo verificar?

    
por Shyam Sunder 22.09.2015 / 04:47

1 resposta

3

Se o usuário em seu servidor tiver um arquivo .ssh/rc personalizado, ou você tiver um arquivo /etc/ssh/sshrc não padrão, o material xauth não será configurado corretamente.

Na página sshd man:

 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.

Se você precisar de um arquivo rc personalizado, basta adicionar isso a ele, também na página man:

    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
    
por 22.09.2015 / 14:04

Tags