错误: 当使用 Xlip 复制 ssh 公钥时,无法打开 display: (null)

我正在跟踪 生成 SSH 密钥,它说

sudo apt-get install 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) 有什么问题吗? 我谷歌了一下,但没有找到任何有关它的东西

154778 次浏览

已经阅读了您链接的文档。这太傻了!xclip只是一个剪贴板。你会找到其他方法来复制粘贴密钥... (我肯定)


如果您不是在图形化 X 会话内部工作,那么您需要将 $DISPLAY环境变量传递给命令。像这样运行:

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

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

DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pub对我不起作用(ubuntu 14.04) ,但是你可以使用:

cat ~/.ssh/id_rsa.pub

拿到你的公钥

如果您试图在远程主机上使用 xlip,只需将 -X 添加到 ssh 命令中

ssh user@host -X

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

试试这个,它会像魔法一样起作用。我也犯了同样的错误,但这种方法为我解决了问题:

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

以下内容对我同样有效:

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

这是 答得太好了没有张贴在这里。它来自 吉尔斯,一个 蒙古语研究员:

剪贴板由 < a href = “ http://en.wikipedia.org/wiki/X _ server”rel = “ noReferrer”> X 提供 服务器 。没关系 无论服务器是否无头,重要的是您的本地 图形会话可用于在远程上运行的程序 由于 X 的网络透明设计,这是可能的。

我假设您正从一个 机器运行 Linux。请确保启用 X11转发 在客户端配置和服务器配置中 客户端配置,您需要在 默认情况下将其打开,或者将选项 -X传递给 在服务器配置中, 你需要把线 X11Forwarding yes放进去 /etc/ssh/sshd_config(在 Ubuntu 上默认存在)。

若要检查是否启用了 X11转发,请查看 你应该看到一个环境变量 值,如 localhost:10(在远程计算机上运行的应用程序 被告知连接到运行在同一台机器上的显示器,但是 显示连接实际上是由 SSH 转发到客户端的 注意,如果没有设置 DISPLAY,那么设置它是没有用的 手动: 环境变量设定总是正确的,如果 如果需要诊断 SSH 连接问题, 将选项 -vvv传递给 ssh,以获得什么内容的详细跟踪 发生了。

如果你正在通过其他方式建立联系,你可能会,也可能不会 能够实现 X11转发。如果您的客户端正在运行 Windows, 腻子 支持 X11转发; 您必须在 Windows 上运行 X 服务器 机器,如 Xming

来自 askubuntu 的 吉勒

基于这个问题的日期,原来的海报不会使用 用于 Linux 的 Windows 子系统。但是如果你是,并且你得到了相同的错误,下面的替代方法可以起作用:

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

感谢 这一页指出 Windows 的 clip.exe (并且您必须键入“。可以从 bash shell 运行。

通过 root 用户添加以下命令: Ssh user _ to _ acces@hostName-X

User _ to _ acces = user HostName = hostName 机器