SSH - 如何将主机添加到 ssh/known_host 文件

Tar*_*run 5 ssh git known-hosts

known_hosts 文件如下所示:-

[localhost]:8001 ssh-dss AAAAB3NzaC1kc3MAAACBAP1/U4EddRIpU   
[10.18.60.198]:8001 ssh-dss AAAAB3NzaC1kc3MAAACBAP1/U4EddRIpUt9
// key are trimmed at the end
Run Code Online (Sandbox Code Playgroud)

这个key是通过Eclipse IDE添加的,想知道还有什么其他的方法可以将主机(IP)和它们的key添加到ssh/known_hosts文件中。

具体:- 如何为known_hosts 文件中的任何主机(IP)添加ssh-dss密钥。

编辑:-

我正在使用 JBoss BRMS,它将 git 用于 BRMS 项目,因此在通过 Git 在 Eclipse IDE 中克隆 BRMS 项目时,它给出以下错误

无法确定主机 'localhost' 的真实性。
DSA 密钥指纹为 e2:2c:62 //修剪。
您确定要继续连接吗?

然后它会自动将 ssh-dss 密钥添加到 known_hosts 文件中。

那么在哪里可以找到该密钥并将其手动添加到 knownhosts 文件中

use*_*686 5

的格式~/.ssh/known_hosts由 OpenSSH 定义。其他软件可能会调用 OpenSSH(ssh命令),或者可能有自己的实现,但不一定 100% 兼容。

OpenSSH known_hosts 格式在sshd(8) 手册页的“ssh_known_hosts 文件格式”下进行了描述。它说这是一个文本文件,每个主机-密钥对只有一行:

这些文件中的每一行都包含以下字段:标记(可选)、主机名、密钥类型、base64 编码密钥、注释。字段由空格分隔。[…] 主机名是一个以逗号分隔的模式列表(' *' 和 ' ?' 作为通配符);每个模式依次与主机名匹配。[…] 主机名或地址可以选择性地包含在“ [”和“ ]”括号内,然后是“ :”和非标准端口号。

要自动为新主机添加密钥,只需 SSH 即可。

要为新主机手动添加密钥,1) 在文本编辑器中打开 known_hosts 文件,2) 按照相同的格式为新主机添加密钥。(密钥必须与您要连接的主机匹配。您可以使用 查询主机的密钥ssh-keyscan -t <type> <address>。)

要为所有主机添加密钥,请使用*模式作为主机名,该模式将匹配所有主机名和地址。要为特定端口上的所有主机添加密钥,请[*]:8001用作主机名。

  • 如果您的应用程序在 localhost 上运行,则 SSH 主机本身就是 localhost。然后使用您自己计算机的密钥,例如来自`ssh-keyscan -t dsa localhost`。 (3认同)