我记得有一个命令可以将公钥发送到我想要的远程主机。我想使用该功能将我的一个公钥发送到另一个主机。我怎么能这样做?
答案 0 :(得分:52)
您正在寻找ssh-copy-id
。所有这个命令都是创建.ssh
和.ssh/authorized_keys
并在它们不存在时适当地设置它们的权限。然后,它会将您的公钥附加到.ssh/authorized_keys
的末尾。
答案 1 :(得分:12)
答案 2 :(得分:1)
如果您的服务器已设置为not accept password-based login,则可能会出现analysis_url
错误。
这是另一种使用Permission denied (publickey)
发送密钥的方法,因此您无需进行身份验证。它只能在本地网络上运行,但您可以使用端口转发在Internet上执行此操作。
在服务器上:
netcat
在客户端上(将$ nc -l 55555 >> ~/.ssh/authorized_keys
替换为服务器的主机名或IP):
HOSTNAME
您可以使用您选择的开放端口替换$ nc HOSTNAME 55555 < ~/.ssh/id_rsa.pub
。
来源:chat over lan from linux to linux?
总新手的附录:我认为没有人提到这一点,但如果你得到55555
,则需要先生成一个密钥。 Ubuntu帮助页面有一个关于Generating RSA Keys的精彩指南。
答案 3 :(得分:0)
所选答案是正确的,但这里有一个简单的bash脚本,适用于任何想要组合keygen + copy的人:https://gist.github.com/wilcollins/bc420581da87962b8b47
此文件在客户端计算机上创建SSH密钥,应用适当的文件权限,复制到本地〜/ .ssh目录,&amp;复制到指定的服务器。
答案 4 :(得分:0)
在其他答案中,没有ssh-copy-id的示例,因此它是(首先需要生成密钥)
ssh-copy-id user@url