自动将公共 is_rsa.pub 添加到known_hosts - 如何?

自动将公共 is_rsa.pub 添加到known_hosts - 如何?

如何自动将服务器添加到known_hosts? (并且不使用 md5 指纹,因为我的意思是安全方式,请不要发送“自动是/接受”解决方案。我想将所需的凭据从服务器带到机器)

我想自动更新我的 sshknown_hosts文件以接受新服务器。

我假设,我需要添加服务器的公钥(id_rsa.pub通过安全通道获取),但我看到的是格式不同(我尝试像这样添加awk '{print "server "$1" "$2}' id_rsa.pub > .ssh/known_hosts但验证失败。请注意,我不想使用 md5由于 md5 的缺陷而导致指纹)。如果有其他id_rsa.pub有用的东西,我可以在服务器上运行命令并通过可信通道获取结果。 (请注意,它不是网络通道(想象一下物理上将随身碟从一个地方带到另一个地方),所以ssh-keyscan并不能解决问题,而且 id_rsa.pub 是 dropbear 服务器的密钥,未在服务器上运行,因此只有带有密钥的文件可用,但不是服务器)

答案1

该名称id_rsa.pub看起来像用户的公钥。这known_hostsknown_hosts存储主机密钥无关。顾名思义,主机密钥对主机(即计算机)进行身份验证,而用户密钥对用户进行身份验证。 OpenSSH 的主机公钥通常位于/etc或中,/etc/ssh并称为ssh_host_rsa_key.pub.

Dropbear 有一个包含私钥的文件。要提取公钥(采用 Dropbear 和 OpenSSH 兼容的格式),请运行

dropbearkey -f /etc/dropbear/dropbear_rsa_host_key -y | sed -n 2p >host_key.pub

我不认为 OpenSSH 附带更新known_hosts文件的命令。手动完成很容易:

echo "$server_name,$server_ip_address $(cat server_ssh_host_rsa_key.pub)" >>~/.ssh/known_hosts

如果您想对主机名进行哈希处理(以便读取您known_hosts文件的人无法知道这些服务器的名称 - 这是一个非常小的隐私增益),请ssh-keygen -H稍后运行。

相关内容