Link to home
Start Free TrialLog in
Avatar of tietohacker
tietohacker

asked on

Xlib: No protocol specified

Hi,
I have winXP on my desktop and have Xming X server installed. I daliy login to solaris and linux machines via putty ssh with X11 forwarding turned on to display solaris and linux X programs to my pc.

But today I logged on the a server I never been to before and there I could not display X programs. I've tried with ssh and telnet via putty. When I login via ssh with X11 forwarding I dont have any DISPLAY varible at all. Then I use telnet and set the DISPLAY variable manualy and then try to start a program I get the following error:

root@donald-bash# export DISPLAY=192.10.1.101:0
root@donald-bash# /usr/openwin/bin/xclock
Xlib: connection to "192.10.1.101:0.0" refused by server
Xlib: No protocol specified

Error: Can't open display: 192.10.1.101:0
root@donald-bash#

Why do I get this?
Is there a way to restrict X displays in the solaris/linux box?

Avatar of Brian Utterback
Brian Utterback
Flag of United States of America image

If you go to one of the other servers that works with X-forwarding, and change the DISPLAY variable to what you have above and then start xclock, does it work?

I think you have two separate problems.  One is that x-forwarding is not working on the new server. The other is why direct X connections (not over ssh) do not work.

I suspect that the direct X connections do not work for any of the servers, not just the new one. The reason you don't know that is that x-forwarding is working on the others.

As to the X-forwarding, the server must have x-forwarding configured in the sshd configuration file, otherwise X-forwarding does not work. On the new server, look for the file /etc/shh/sshd_config. In that file look for a line that says "X11Forwarding yes". If
that line does not exist or is commented out, that is the problem.
Avatar of tietohacker
tietohacker

ASKER

Hi blu,
I dont have any /etc/ssh dir at all. The sshd daemon exists under /usr/local/sbin and ssh + ssh-keygen etc. exists under /usr/local/bin.
If this dir doesent exists, can I create it and the file you mentioned?
Yes, that should work just fine. Take a look at the corresponding directory from the working servers. Do not copy any files other than the sshd_config file, the others are system specific.
Blu,
I found the sshd_config file in /usr/local/etc/ dir. I made the changes and comment out:
X11Forwarding yes

Tried to login again, but no DISPLAY variable is set even if I have the "X11 forwarding" button marked in putty.
Also tried to create the /etc/ssh dir and placed the sshd_config file in that dir but that didnt work either.

Is there a way to see which config file sshd is useing and where it exists?

/T
You want to make sure "X11Forwarding yes" is not commented out.

Please uncomment it, then login in again. Do you get a DISPLAY variable set this time? If so, what is it set to?
No its not commented out.
Im sorry but I dont get the DISPLAY variable set after relogin.
/T
ASKER CERTIFIED SOLUTION
Avatar of Brian Utterback
Brian Utterback
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
"ps -ef | grep sshd" tells me that the binary exists under /usr/local/sbin.
If I type "strings sshd | grep conf" it tels me that it uses /usr/local/etc/sshd_conf as the config file anfd that one I have chaged.

I then made:
"kill -HUP pid"
After a relogin everything works fine! It was only a HUP to the sshd process that was necessary.

THANKS!

/T