首页 文章

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

提问于
浏览
63

它说,我正在关注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) 有什么问题?我用Google搜索,但一无所获

7 回答

  • 12

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

    ssh user@host -X
    

    更多详细信息可在此处找到:https://askubuntu.com/a/305681

  • 75

    根据这个问题的日期,原始海报不会使用Windows Subsystem for Linux . 但是,如果您是,并且您得到相同的错误,则以下替代方案有效:

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

    感谢this page指出Windows的clip.exe(你必须输入".exe")可以从bash shell运行 .

  • 22

    已阅读文档've linked. That'完全傻了! xclip 只是一个剪贴板 . 你确定'll find other ways to copy paste the key... (I'


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

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

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

  • 5

    这是too good of an answer不发布在这里 . 这是来自askubuntu的fellow user

    剪贴板由X服务器提供 . 无论服务器是否无头,都无关紧要,重要的是您的本 Map 形会话可供远程计算机上运行的程序使用 . 由于X的网络透明设计,这是可能的 . 我假设您使用SSH从运行Linux的计算机连接到远程服务器 . 确保在客户端配置和服务器配置中都启用了X11转发 . 在客户端配置中,您需要在〜/ .ssh / config中使用ForwardX11 yes以使其默认启用,或者将选项-X传递给仅适用于该会话的ssh命令 . 在服务器配置中,您需要在/ etc / ssh / sshd_config中使用X11Forwarding行(默认情况下它出现在Ubuntu上) . 要检查是否启用了X11转发,请查看DISPLAY环境变量的值:echo $ DISPLAY . 您应该看到类似localhost:10的值(远程计算机上运行的应用程序被告知连接到在同一台计算机上运行的显示器,但该显示连接实际上是通过SSH转发到客户端显示器) . 请注意,如果未设置DISPLAY,则无需手动设置:如果转发到位,则始终正确设置环境变量 . 如果您需要诊断SSH连接问题,请将选项-vvv传递给ssh以详细了解正在发生的情况 . 如果您通过其他方式进行连接,则可能会或可能无法实现X11转发 . 如果您的客户端运行Windows,PuTTY支持X11转发;你必须在Windows机器上运行X服务器,例如Xming . - 来自askubuntu的吉尔斯

  • 8

    尝试这个,它将像一个魅力 . 我遇到了同样的错误,但这种方法对我有用:

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

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

    cat ~/.ssh/id_rsa.pub
    

    获取您的公钥

  • 7

    以下内容对我也有用:

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

相关问题