错误:无法使用 Xclip 复制 ssh 公钥时打开显示:(空)



我正在关注生成SSH密钥,它说

sudo apt-get install xclip

下载并安装 xclip。如果您没有apt-get,则可能需要使用其他安装程序(如yum

xclip -sel clip < ~/.ssh/id_rsa.pub

将 id_rsa.pub 文件的内容复制到剪贴板

但是在我跑xclip -sel clip < ~/.ssh/id_rsa.pub之后,我得到了Error: Can't open display: (null)问题出在哪里?我用谷歌搜索了一下,但一无所获

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

我不起作用(ubuntu 14.04),但您可以使用:

cat ~/.ssh/id_rsa.pub

获取公钥

根据这个问题的日期,最初的海报不会使用Linux的Windows子系统。但是,如果您是,并且遇到相同的错误,则以下替代方法有效:

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

感谢此页面指出Windows的剪辑.exe(您必须键入".exe")可以从bash shell运行。

这是一个太好的答案,不能在这里发布。这是来自Gilles,一个askubuntu研究员:

剪贴板由 X 提供服务器。这不重要无论服务器是否无头,重要的是您的本地服务器图形会话可用于远程上运行的程序机器。由于X的网络透明设计,这是可能的。

我假设您正在使用 SSH 从运行 Linux 的机器。确保同时启用了 X11 转发在客户端配置和服务器配置中。在客户端配置,您需要将线路ForwardX11 yes ~/.ssh/config默认打开它,或将选项-X传递给仅用于该会话的 ssh 命令。在服务器配置中,您需要将行X11Forwarding yes /etc/ssh/sshd_config(默认情况下,它在 Ubuntu 上存在)。

要检查是否启用了 X11 转发,请查看 DISPLAY环境变量:echo $DISPLAY 。您应该会看到一个类似于localhost:10的值(在远程计算机上运行的应用程序)被告知连接到在同一台计算机上运行的显示器,但显示连接实际上是通过 SSH 转发到客户端的显示)。请注意,如果未设置DISPLAY,则设置它是没有用的手动:如果转发已到位。如果需要诊断 SSH 连接问题,将选项-vvv传递给ssh以获取详细信息发生。

如果您通过其他方式进行连接,则可能是也可能不是能够实现 X11 转发。如果您的客户端正在运行 Windows,油灰支持 X11 转发;你必须在Windows上运行X服务器。机器如Xming。

作者:Gilles from askubuntu

如果您尝试在远程主机上使用 xclip,只需将 -X 添加到您的 ssh 命令中即可

ssh user@host -X

更详细的信息可以在这里找到:https://askubuntu.com/a/305681

以下内容也对我有用:

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

试试这个,它会像一个魅力一样工作。我遇到了同样的错误,但这种方法为我提供了诀窍:

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

已阅读您链接的文档。这完全是愚蠢的! xclip只是一个剪贴板。您将找到其他复制粘贴密钥的方法...(我确定)


如果您不是在图形 X 会话中工作,则需要将$DISPLAY环境 var 传递给命令。像这样运行它:

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

当然:0取决于您使用的显示器。如果您有一台典型的台式机,则很可能是:0

由用户 root 添加此命令:ssh user_to_acces@hostName -X

user_to_acces = 用户主机名 = 主机名计算机

最新更新