我正在关注Generating SSH Keys,它说
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)
问题是什么?我在谷歌上搜索但没有发现它
答案 0 :(得分:86)
DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pub
对我不起作用(ubuntu 14.04
),但您可以使用:
cat ~/.ssh/id_rsa.pub
获取您的公钥
答案 1 :(得分:36)
根据此问题的日期,原始海报不会使用Windows Subsystem for Linux。但是,如果您是,并且您得到相同的错误,则以下替代方案有效:
clip.exe < ~/.ssh/id_rsa.pub
感谢this page指出Windows&#39; clip.exe(你必须键入&#34; .exe&#34;)可以从bash shell运行。
答案 2 :(得分:23)
这是too good of an answer不在此处发布。它来自Gilles,来自 askubuntu 的其他用户:
剪贴板由X server提供。这没关系 无论服务器是否无头,重要的是你的本地服务器 图形会话可用于远程上运行的程序 机。借助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, PuTTY 支持X11转发;您必须在Windows上运行X服务器 机器,例如Xming。
来自askubuntu的 Gilles
答案 3 :(得分:14)
答案 4 :(得分:8)
已阅读您已关联的文档。那太傻了! xclip
只是一张剪贴板。你会找到其他方法来复制粘贴密钥......(我敢肯定)
如果您不在图形X会话中工作,则需要将$DISPLAY
环境var传递给命令。像这样运行:
DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pub
当然:0
取决于您使用的显示器。如果您有一台典型的台式机,则可能是:0
答案 5 :(得分:8)
尝试这个,它会像魅力一样工作。我遇到了同样的错误,但这种方法对我来说很有用:
ssh USER@REMOTE "cat file"|xclip -i
答案 6 :(得分:6)
以下内容也适用于我:
App\Http\Request.php
答案 7 :(得分:1)
由root用户添加此命令: ssh user_to_acces @ hostName -X
user_to_acces =用户 hostName =主机名机器