我有一个来自 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
答案3
尝试 -r $HOSTNAME 作为第一个参数:
$ ssh-keygen -r moppel -f ~/.ssh/id_dsa -g
moppel IN TYPE44 \# 22 02 01 3950bf0c2cf2318b9ab2187992b6f7869947c3aa