Hi,
I was able to solve this. When I looked into the code, I saw that you already to use "bash -c '...'" for all commands, so quoting shouldn't be an issue.
But as the error message for tcsh was about Warning: Protocol mismatch or no X authentication data. I started looking at xauth and found an interesting difference between bash and tcsh as login shell.
For bash, these entries are added by x2gostartagent:
myhost/unix:59 MIT-MAGIC-COOKIE-1 e938deb788659f0bf8c99069d199aff6 myhost.ifi.lmu.de:59 MIT-MAGIC-COOKIE-1 e938deb788659f0bf8c99069d199aff6 myhost.ifi.lmu.de:59 MIT-MAGIC-COOKIE-1 e938deb788659f0bf8c99069d199aff6
For tcsh, I got those: myhost.ifi.lmu.de/unix:58 MIT-MAGIC-COOKIE-1 7212fb8aa466de75ea0224a4d010f5e4 myhost.ifi.lmu.de:58 MIT-MAGIC-COOKIE-1 7212fb8aa466de75ea0224a4d010f5e4 myhost.ifi.lmu.de:58 MIT-MAGIC-COOKIE-1 7212fb8aa466de75ea0224a4d010f5e4
And that's the point! For some reason, x2go needs the cookie for display "myhost/unix" at some point and "myhost.ifi.lmu.de/unix" doesn't suffice.
Indeed, when I wrote a little bash script
#!/bin/bash echo $HOSTNAME
and called it with "ssh myhost bash -c './testscript'", it echoed "myhost" with login shell bash, and "myhost.ifi.lmu.de" with login shell tcsh.
I'm not yet sure where this difference comes from, if it's deep inside bash and tcsh or in some server-wide login scripts from SuSE (it was not in the users dotfiles, we even removed them all).
Anwyay, I added "setenv HOSTNAME uname -n
" to my .cshrc and:
x2go works :-)
To make that work for all our users I added HOSTNAME=${HOSTNAME%%.*} into x2gostartagent which doesn't harm if HOSTNAME is already without the domain. So maybe you could add this to the next release to help people running into the same issue.
cu, Frank
-- Dipl.-Inform. Frank Steiner Web: http://www.bio.ifi.lmu.de/~steiner/ Lehrstuhl f. Bioinformatik Mail: http://www.bio.ifi.lmu.de/~steiner/m/ LMU, Amalienstr. 17 Phone: +49 89 2180-4049 80333 Muenchen, Germany Fax: +49 89 2180-99-4049