从 OpenSSH known_hosts 文件条目生成 SSHFP 记录

从 OpenSSH known_hosts 文件条目生成 SSHFP 记录

我有一个来自 OpenSSH 文件的条目known_hosts;我想为此生成一个 SSHFP 资源记录。我可以ssh-keygen毫不费力地使用它来生成指纹:

$ ssh-keygen -f foo_known_host -l
1040 09:a0:5c:5f:43:fb:e5:25:d8:0c:d8:dc:d7:7a:c4:62 foo.example.com. (RSA)

但它似乎不喜欢DNS指纹记录:

$  ssh-keygen -f foo_known_host -r foo
failed to read v2 public key from foo_known_host.

那么我该怎么做呢?


笔记:如果你是通过询问搜索引擎来到这里如何生成 SSHFP 记录的来自远程主机(不是如上所述的指纹的本地副本),这是通过完成的ssh-keyscan -D machine.name –

答案1

ssh-keygen(1)表现方式不一样sshfp(1)

您会从手册页中注意到语法是:

ssh-keygen -r hostname [-f input_keyfile] [-g]

因此文件应该是input_keyfile而不是known_hosts_file。如果您不指定,则它将默认为服务器的本地密钥/etc/ssh/ssh_host_rsa_key.pub/etc/ssh/ssh_host_dsa_key.pub

您可以使用 为想要创建 SSHFP 记录的每个服务器生成记录ssh-keygen。或者从一个文件中获取sshfp并创建它们。known_hosts

答案2

这个脚本很好:

http://brmlab.cz/kb/sshfp.sh

它需要在 /etc/ssh 中运行,或者在它执行操作之前将其编辑为 cd 在那里。

答案3

尝试 -r $HOSTNAME 作为第一个参数:

$ ssh-keygen -r moppel -f ~/.ssh/id_dsa -g
moppel IN TYPE44 \# 22 02 01 3950bf0c2cf2318b9ab2187992b6f7869947c3aa

相关内容