Subject: bug#23960: lshd: X11 forwarding request failed on channel 0

From: myglc2 <[email-masked]>
Date: Tue, 12 Jul 2016 16:53:17 -0400

myglc2 <[email-masked]> writes:

> From 'Re: guixSD - problem with X11 forwarding' in [email-masked]
>
> myglc2 <[email-masked]> writes:
>
>> [email-masked] (Ludovic Courtès) writes:
>>
>>> myglc2 <[email-masked]> skribis:
>>>
>>>> On guixSD, with no packages installed in the login user profile, I get
>>>> 'X11 forwarding request failed on channel 0'
>>>
>>> [...]
>>>
>>>> debug1: channel 0: new [client-session]
>>>> debug1: Entering interactive session.
>>>> debug1: Requesting X11 forwarding with authentication spoofing.
>>>> debug1: Sending environment.
>>>> debug1: Sending env LANG = en_US.UTF-8
>>>> X11 forwarding request failed on channel 0
>>>
>>> Right, I see that as well.
>>>
>>> lshd gives some clues in /var/log/messages:
>>>
>>> Feb 23 18:14:09 localhost lshd[430]: lshd: Updating utmp for login failed (errno = 2): No such file or directory 
>>> Feb 23 18:14:09 localhost lshd[430]: lshd: xauth invocation failed: exit code: 127 
>>> Feb 23 18:14:33 localhost lshd[430]: lshd: Updating utmpx for logout failed (errno = 2): No such file or directory 
>>> Feb 23 18:14:33 localhost lshd[430]: lshd: write_buffer: Attempt to write data to closed buffer. 
>>> Feb 23 18:14:33 localhost lshd[430]: lshd: Disconnect for reason 11: disconnected by user 
>>>
>>> Indeed, server_x11.c in lsh reads:
>>>
>>> #ifndef XAUTH_PROGRAM
>>> # define XAUTH_PROGRAM "/usr/X11R6/bin/xauth"
>>> #endif
>>>
>>> I believe this is fixed by commit da35acf.
>>>
>>> To give it a try, you can run (as root):
>>>
>>>   # guix pull
>>>   # herd stop ssh-daemon
>>>   # guix system reconfigure your-config.scm
>>
>> I tried the above. 'ssh -v ...' still produces results quoted above and
>> I see in /var/log/messages:
>>
>> Feb 29 20:43:54 localhost lshd[6959]: lshd: Failed to cd to `/tmp/.X11-unix' (errno = 2): No such file or directory 
>> Feb 29 20:43:54 localhost lshd[6959]: lshd: Updating utmp for login failed (errno = 2): No such file or directory 
>> Feb 29 20:45:35 localhost lshd[6959]: lshd: Updating utmpx for logout failed (errno = 2): No such file or directory 
>> Feb 29 20:45:35 localhost lshd[6959]: lshd: write_buffer: Attempt to write data to closed buffer. 
>> Feb 29 20:45:35 localhost lshd[6959]: lshd: Disconnect for reason 11: disconnected by user 
>> Feb 29 20:45:47 localhost lshd[6959]: lshd: Failed to cd to `/tmp/.X11-unix' (errno = 2): No such file or directory 
>> Feb 29 20:45:47 localhost lshd[6959]: lshd: Updating utmp for login failed (errno = 2): No such file or directory 
>>
>> I tried 'sudo mkdir /tmp/.X11-unix' which changed /var/log/messages to:
>>
>> Feb 29 20:54:04 localhost lshd[6959]: lshd: Updating utmp for login failed (errno = 2): No such file or directory 
>> Feb 29 20:54:09 localhost lshd[6959]: lshd: Updating utmpx for logout failed (errno = 2): No such file or directory 
>> Feb 29 20:54:09 localhost lshd[6959]: lshd: write_buffer: Attempt to write data to closed buffer. 
>> Feb 29 20:54:09 localhost lshd[6959]: lshd: Disconnect for reason 11: disconnected by user 
>>
>> and 'ssh -v ...' still produces the results quoted above.
>
> Don't think this is fixed yet. ssh in to GuixSD gives ...
>
> 'X11 forwarding request failed on channel 0'
>
> ... and on GuixSD in /var/log/messages I see ...
>
> Jul 12 16:25:42 localhost lshd[384]: lshd: Failed to cd to `/tmp/.X11-unix' (errno = 2): No such file or directory 
> Jul 12 16:25:42 localhost lshd[384]: lshd: Updating utmp for login failed (errno = 2): No such file or directory 
>
> ... or after ...
>
> sudo mkdir /tmp/.X11-unix
>
> ... I see ...
>
> Jul 12 16:21:53 localhost lshd[384]: lshd: Updating utmpx for logout failed (errno = 2): No such file or directory 
> Jul 12 16:21:53 localhost lshd[384]: lshd: write_buffer: Attempt to write data to closed buffer. 
> Jul 12 16:21:53 localhost lshd[384]: lshd: Disconnect for reason 11: disconnected by user 
> Jul 12 16:22:00 localhost lshd[384]: lshd: Updating utmp for login failed (errno = 2): No such file or directory 
>
> I am running from a git checkout ...
>
> g1@g1 ~/src/guix$ git branch -av | grep '* master'
> * master                                   0885881 gnu: obs: Remove compiler flags for non-Intel hardware.
> g1@g1 ~/src/guix$ stat /home/g1/.config/guix/latest | grep File:
>   File: ‘/home/g1/.config/guix/latest’ -> ‘../../src/guix’
>
>
> system and user configs attached. TIA - George

Afterthought... when I do ...

sudo mkdir /tmp/.X11-unix
sudo chmod 777 /tmp/.X11-unix

... it works.