Solved

Xlib: No protocol specified

Posted on 2008-10-24
8
6,676 Views
Last Modified: 2013-12-27
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?

0
Comment
Question by:tietohacker
  • 4
  • 4
8 Comments
 
LVL 22

Expert Comment

by:blu
ID: 22795499
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.
0
 

Author Comment

by:tietohacker
ID: 22795744
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?
0
 
LVL 22

Expert Comment

by:blu
ID: 22795960
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.
0
 

Author Comment

by:tietohacker
ID: 22811110
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
0
Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

 
LVL 22

Expert Comment

by:blu
ID: 22811616
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?
0
 

Author Comment

by:tietohacker
ID: 22811959
No its not commented out.
Im sorry but I dont get the DISPLAY variable set after relogin.
/T
0
 
LVL 22

Accepted Solution

by:
blu earned 125 total points
ID: 22812177
The first thing to try is to look at the running sshd on the server. The command line option for setting the config file is
-f, so you can use /usr/ucb/ps auxwww to see if it is set on the top level sshd.

If not, look to see the path it is running from. From your description, it sounds like it is /usr/local/sbin. Look for the sshd binary in there. Then run this command "strings sshd | grep conf"

This should display the pre-compiled conf file location. Then go find that file and make sure that X11Forwarding is turned on there.
0
 

Author Comment

by:tietohacker
ID: 22812556
"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
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Suggested Solutions

A metadevice consists of one or more devices (slices). It can be expanded by adding slices. Then, it can be grown to fill a larger space while the file system is in use. However, not all UNIX file systems (UFS) can be expanded this way. The conca…
FreeBSD on EC2 FreeBSD (https://www.freebsd.org) is a robust Unix-like operating system that has been around for many years. FreeBSD is available on Amazon EC2 through Amazon Machine Images (AMIs) provided by FreeBSD developer and security office…
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now