我有一个来自 OpenSSHknown_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 –
.
ssh-keygen(1)
的行为方式与sshfp(1)
.您会从手册页中注意到语法是:
所以文件应该是一个
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
这个脚本很好:
http://brmlab.cz/kb/sshfp.sh
它需要在 /etc/ssh 中运行,或者在它执行之前将其编辑到 cd 那里。
尝试 -r $HOSTNAME 作为第一个论点: