Error: Can't open display: (null) when using Xclip to copy ssh public key

LinuxSsh

Linux Problem Overview


I’m following in Generating SSH Keys, it says

> sudo apt-get install xclip > Downloads and installs xclip. If you don't have apt-get, you might need to use another installer (like yum)
> > xclip -sel clip < ~/.ssh/id_rsa.pub > Copies the contents of the id_rsa.pub file to your clipboard

But after I runxclip -sel clip < ~/.ssh/id_rsa.pub I get Error: Can't open display: (null) What is the problem? I googled around but found nothing about it

Linux Solutions


Solution 1 - Linux

DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pub didn't work for me (ubuntu 14.04), but you can use :

cat ~/.ssh/id_rsa.pub

to get your public key

Solution 2 - Linux

Based on the date of this question the original poster wouldn't have been using Windows Subsystem for Linux. But if you are, and you get the same error, the following alternative works:

clip.exe < ~/.ssh/id_rsa.pub

Thanks to this page for pointing out Windows' clip.exe (and you have to type the ".exe") can be run from the bash shell.

Solution 3 - Linux

This was too good of an answer not to post it here. It's from a Gilles, a fellow user from askubuntu:

> The clipboard is provided by the X > server. It doesn't matter > whether the server is headless or not, what matters is that your local > graphical session is available to programs running on the remote > machine. Thanks to X's network-transparent design, this is possible. > > I assume that you're connecting to the remote server with SSH from a > machine running Linux. Make sure that X11 forwarding is enabled both > in the client configuration and in the server configuration. In the > client configuration, you need to have the line ForwardX11 yes in > ~/.ssh/config to have it on by default, or pass the option -X to > the ssh command just for that session. In the server configuration, > you need to have the line X11Forwarding yes in > /etc/ssh/sshd_config (it is present by default on Ubuntu). > > To check whether X11 forwarding is enabled, look at the value of the > DISPLAY environment variable: echo $DISPLAY. You should see a > value like localhost:10 (applications running on the remote machine > are told to connect to a display running on the same machine, but that > display connection is in fact forwarded by SSH to your client-side > display). Note that if DISPLAY isn't set, it's no use setting it > manually: the environment variable is always set correctly if the > forwarding is in place. If you need to diagnose SSH connection issues, > pass the option -vvv to ssh to get a detailed trace of what's > happening. > > If you're connecting through some other means, you may or may not be > able to achieve X11 forwarding. If your client is running Windows, > PuTTY > supports X11 forwarding; you'll have to run an X server on the Windows > machine such as Xming. > > By Gilles from askubuntu

Solution 4 - Linux

In case you are trying to use xclip on remote host just add -X to your ssh command

ssh user@host -X

More detailed information can be found here : https://askubuntu.com/a/305681

Solution 5 - Linux

The following is also working for me:

ssh <user>@<host>  "cat <filepath>"|pbcopy 

Solution 6 - Linux

Have read the documentation you've linked. That's totally silly! xclip is just a clipboard. You'll find other ways to copy paste the key... (I'm sure)


If you aren't working from inside a graphical X session you need to pass the $DISPLAY environment var to the command. Run it like this:

DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pub

Of course :0 depends on the display you are using. If you have a typical desktop machine it is likely that it is :0

Solution 7 - Linux

Try this and it will work like a charm. I was having the same error but this approach did the trick for me:

ssh USER@REMOTE "cat file"|xclip -i

Solution 8 - Linux

add by user root this command : ssh user_to_acces@hostName -X

user_to_acces = user hostName = hostname machine

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questioncqcn1991View Question on Stackoverflow
Solution 1 - LinuxJahdereView Answer on Stackoverflow
Solution 2 - LinuxMarc StoberView Answer on Stackoverflow
Solution 3 - LinuxNeithan MaxView Answer on Stackoverflow
Solution 4 - LinuxPeter PshenichnyView Answer on Stackoverflow
Solution 5 - LinuxDarioView Answer on Stackoverflow
Solution 6 - Linuxhek2mglView Answer on Stackoverflow
Solution 7 - LinuxVaToView Answer on Stackoverflow
Solution 8 - LinuxFadidView Answer on Stackoverflow