【问题标题】:Command to send public key to remote host将公钥发送到远程主机的命令
【发布时间】:2011-10-22 20:53:50
【问题描述】:

我记得有一个命令可以将公钥发送到我想要的远程主机。我想使用该功能将我的一个公钥发送到另一台主机。我该怎么做?

【问题讨论】:

    标签: ssh public-key-encryption


    【解决方案1】:

    您正在寻找ssh-copy-id。该命令所做的只是创建.ssh.ssh/authorized_keys 并在它们不存在时适当地设置它们的权限。然后它将您的公钥附加到.ssh/authorized_keys 的末尾。

    【讨论】:

    • 太棒了。只需运行ssh-copy-id root@server
    【解决方案2】:

    你可能正在寻找这个命令:

    cat ~/.ssh/id_rsa.pub | ssh user@hostname 'cat >> .ssh/authorized_keys'
    

    它将您的公钥附加到服务器授权密钥。

    Source

    【讨论】:

    • 这比公认的答案更便携,因为并非所有系统(我在看你,OS X)都有ssh-copy-id。虽然我个人会稍微修改为cat ~/.ssh/id_rsa.pub | ssh user@hostname 'tee -a .ssh/authorized_keys',但这只是个人喜好。
    • 看起来 ssh-copy-id 是 MacOS Sierra 的一部分,这很好。
    【解决方案3】:

    如果您的服务器已经设置为not accept password-based login,您可能会收到Permission denied (publickey) 错误。

    这是另一种发送密钥的方法,使用netcat,因此您不必进行身份验证。它只能在本地网络上工作,但您可以使用端口转发在 Internet 上执行此操作。

    在服务器上:

    $ nc -l 55555 >> ~/.ssh/authorized_keys
    

    在客户端(将HOSTNAME替换为服务器的主机名或IP):

    $ nc HOSTNAME 55555 < ~/.ssh/id_rsa.pub
    

    您可以将55555 替换为您选择的开放端口。

    来源:chat over lan from linux to linux?


    新手的附录:我想还没有人提到这个,但是如果你得到ERROR: failed to open ID file '/home/username/.pub': No such file,你需要先生成一个密钥。 Ubuntu 帮助页面在Generating RSA Keys 上有很好的指南。

    【讨论】:

      【解决方案4】:

      在其他答案中,没有 ssh-copy-id 的示例,所以在这里(首先您需要生成密钥)

      ssh-copy-id user@url
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-19
        • 2016-04-28
        • 2019-12-20
        • 1970-01-01
        • 1970-01-01
        • 2011-03-03
        • 1970-01-01
        相关资源
        最近更新 更多