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

use*_*594 33 ssh public-key-encryption

我记得有一个命令将公钥发送到我想要的远程主机.我想使用该功能将我的一个公钥发送到另一个主机.我怎样才能做到这一点?

cdh*_*wie 55

你在找ssh-copy-id.所有这个命令都是创建.ssh并且.ssh/authorized_keys如果它们不存在则适当地设置它们的权限.然后它将您的公钥附加到结尾.ssh/authorized_keys.

  • 大.只需运行`ssh-copy-id root @ server`即可. (15认同)

Fla*_*dre 13

您可能正在寻找此命令:

cat ~/.ssh/id_rsa.pub | ssh user@hostname 'cat >> .ssh/authorized_keys'
Run Code Online (Sandbox Code Playgroud)

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

资源

  • 这比接受的答案更便携,因为并非所有系统(我看着你,OS X)都有`ssh-copy-id`.虽然,就个人而言,我会稍微修改它为`cat~/.ssh/id_rsa.pub | ssh user @ hostname'tee -a .ssh/authorized_keys'`,但这只是个人偏好. (2认同)

Kei*_*ith 5

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

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

在服务器上:

$ nc -l 55555 >> ~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)

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

$ nc HOSTNAME 55555 < ~/.ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)

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

来源:从 linux 到 linux 通过局域网聊天?


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