将公钥添加到 known_hosts 文件

新手上路,请多包涵

我正在尝试将服务器 A 中的公钥复制到服务器 B 中的 known_hosts 文件中。它们都是 linux 服务器。最初我考虑打开公钥文件并将其内容复制到 known_hosts 文件,但我怀疑这不是正确的方法。有谁知道这样做的正确方法是什么?

我的公钥格式为 ssh-rsa AADGD...

有人可以帮忙吗?

谢谢!

原文由 Trung Tran 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.1k
2 个回答

几天前,我在 SuperUser 上回答了几乎类似的答案。重要部分:

  • 格式不一样
  • 每台服务器上都有不同的主机密钥(类型)(确保粘贴实际使用的)
  • ssh-keyscan 可以为你创建格式

否则,只需在您的密钥前面加上服务器 IP 地址(您还可以在逗号后添加主机名),从行尾删除注释,您就可以了。格式然后看起来像这样:

 11.22.33.44 ssh-rsa AADGD...

还有一点需要注意的是,如果您使用 HashKnownHosts yes (Debian 和 Ubuntu 使用),您需要重新散列您的 known_hosts 例如:

 ssh-keygen -Hf ~/.ssh/known_hosts

原文由 Jakuje 发布,翻译遵循 CC BY-SA 3.0 许可协议

刚刚碰到这个问题,我是这样处理的:

随着时间的推移,通过机械复制文件

ssh-keyscan server-name >> ~/.ssh/known_hosts

在 .ssh/known_hosts 中给了我重复的条目。

其他手动方法需要我创建 .ssh 目录不存在,等等。

我决定让 ssh 处理它:

 ssh -o StrictHostKeyChecking=no server-name ls

-o StrictHostKeyChecking=no 选项自动对

The authenticity of host 'server-name (12.345.678.900)' can't be established.
RSA key fingerprint is XXXXXXX.
Are you sure you want to continue connecting (yes/no)?

消息(在此处插入有关随机连接到您不知道的机器的所有安全警告)。

ls 命令只是一个绒毛命令,它将在完成后执行并强制 SSH 断开连接。您可以将其更改为您喜欢的任何绒毛命令。

ssh 将负责创建 .ssh 目录(如有必要),仅添加一份密钥副本等。

平台:macOS 10.14

原文由 JS. 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题