命令将公钥发送到远程主机



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

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

您可能正在寻找以下命令:

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

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

如果您的服务器已经设置为不接受基于密码的登录,您可能会得到一个Permission denied (publickey)错误。

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

服务器端:

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

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

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

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

源代码:从Linux到Linux的局域网聊天?


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

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

ssh-copy-id user@url

最新更新