Subject: Bug#566: [X2Go-Dev] Bug#566: X2Go Client for Windows 4.0.2.1 cannot create C:\Users\<username>\ssh\known_hosts file when the local Windows account username has non-Ascii characters

From: Mike Gabriel <[email-masked]>
Date: Mon, 08 Sep 2014 08:58:33 +0000

Hi Mike#2,

On  So 07 Sep 2014 15:23:22 CEST, Michael DePaulo wrote:

> On Sun, Sep 7, 2014 at 6:04 AM, George Trakatelis  
> <[email-masked]> wrote:
> [...]
>>
>> a. Installed German keyboard. Hit ';' to produce an accented letter
>> and -to my surprise- got ö. So I thought ölexandr was the right  
>> name to test for username.
>>
>> b. Created user ölexandr and logged in as that user.
>> The patch did not work, as you mentioned.
>>
>> c. As toLocal8Bit() returns the local 8-bit representation of a string,
>> I changed the system locale for non-unicode programs to German.
>> Now the patch worked!
>>
>> I think the patch solves the problem for the Windows users who use English
>> as a foreign language and prefer having (non-Ascii) usernames in  
>> their native language.
>>
>> -George
>>
>> PS. A better title for the bug would be
>>
>> X2Go Client for Windows 4.0.2.1 cannot create  
>> C:\Users\<username>\ssh\known_hosts file when the local Windows  
>> account username has non-Ascii characters
>
> Hi Mike#1 and George,
>
> 1. What do you think of using toUtf8() instead? I am hoping that will
> fix the bug regardless of the locale.
>
> I tried changing it to that (bug566.utf8.test.patch), but it still did
> not fix this bug with the greek username on my system with the locale
> set to English. It did not introduce a regression for my ASCII user
> account at least.
>
> If libssh needs to be recompiled for Unicode, I can do that. I just
> recompiled it for bug #590.
>
> FYI: This is the API we are calling:
> http://api.libssh.org/stable/group__libssh__session.html#ga7a801b85800baa3f4e16f5b47db0a73d

I am getting the suspicion, that this is a libssh issue.

X2Go Client and libssh should communicate via UTF-8 (because it is  
_the_ encoding that applications use internally, nowadays) and libssh  
should handle whatever conversion (probably to UTF-16 wide string?) is  
necessary for creating files, being aware of usernames, etc.

> 2. in sshmasterconnection.cpp, we also set "SSH_OPTIONS_USER" . I
> think that we should also change its value from to.Ascii() to
> toLocal8Bit() or toUtf8(). bug566.test.v2.patch has this change for
> toLocal8Bit(), and bug566.utf8.test.patch has it for toUtf8().

Same thing. SSH_OPTIONS_USER should be set as UTF-8 and libssh should  
convert to whatever encoding is needed.

Greets,
Mike

-- 

DAS-NETZWERKTEAM
mike gabriel, herweg 7, 24357 fleckeby
fon: +49 (1520) 1976 148

GnuPG Key ID 0x25771B31
mail: [email-masked], http://das-netzwerkteam.de

freeBusy:
https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.xfb