Monday, July 30, 2012

"ssh -X" from a Mac running Leopard to an openSuSE Linux box

Simple ssh works from one to the other, but "ssh -X" or "ssh -Y" don't achieve, what I expect them to do. "X11Forwarding" already set to true on the target side, and sshd restarted there as well. $DISPLAY still not set after all these attempts.
I upgraded the target side OS-wise recently, now it's running openSUSE-12.1. I compared the new sshd_config to the old one, and I made it look like the old one w.r.t. the crucial issues.
Getting this running is not so important, I just wonder, what is in my way.

Update 2012-07-30 19:10
It's definitely not the Mac's problem, but the slightly screwed configuration on the target side – which got upgraded just last week. "ssh -X" to another openSUSE box works.
BTW: it does not matter, whether the "bad target machine" is connected to from outside or locally. It's just as bad.

Update 2012-08-12 08:45
I owed this problem to my OS upgrade, and I also describe this in my "openSUSE upgrade" article.

On the target machine side this appeared in syslog, whenever I logged in using "ssh -X" instead of simply using "ssh" without "-X":
"sshd[PID]: error: Failed to allocate internet-domain X11 display socket."

Apparently there are two different ways to fix this on the target machine side:

  • enable IPv6;
  • this path looks rather future oriented to me and just like the right way to go.
  • if you want to stay IPv4-only for the time being …
  • add "AddressFamily inet" in /etc/ssh/sshd_config; "inet" stands for "use IPv4 only";
  • adding "AddressFamily any", in order to allow both IPv4 and also IPv6, did not work for me;
  • of course: stop+start (or whatever) the sshd in order for this to have any effect.
I tried both fixes, fix#2 first, fix#1 later, and I decided to stay with fix#1.

I found the recipes (using DuckDuckGo) on ubuntu and opensuse forums (yes, I know: Latin plural is "fora").

No comments: