【发布时间】:2011-10-22 20:53:50
【问题描述】:
我记得有一个命令可以将公钥发送到我想要的远程主机。我想使用该功能将我的一个公钥发送到另一台主机。我该怎么做?
【问题讨论】:
我记得有一个命令可以将公钥发送到我想要的远程主机。我想使用该功能将我的一个公钥发送到另一台主机。我该怎么做?
【问题讨论】:
您正在寻找ssh-copy-id。该命令所做的只是创建.ssh 和.ssh/authorized_keys 并在它们不存在时适当地设置它们的权限。然后它将您的公钥附加到.ssh/authorized_keys 的末尾。
【讨论】:
ssh-copy-id root@server。
你可能正在寻找这个命令:
cat ~/.ssh/id_rsa.pub | ssh user@hostname 'cat >> .ssh/authorized_keys'
它将您的公钥附加到服务器授权密钥。
【讨论】:
ssh-copy-id。虽然我个人会稍微修改为cat ~/.ssh/id_rsa.pub | ssh user@hostname 'tee -a .ssh/authorized_keys',但这只是个人喜好。
如果您的服务器已经设置为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 上有很好的指南。
【讨论】:
在其他答案中,没有 ssh-copy-id 的示例,所以在这里(首先您需要生成密钥)
ssh-copy-id user@url
【讨论】: