我想为运行 RouterOS 6.47.4 的 Mikrotik CCR2004 生成 SSHFP 记录,但不通过网络获取密钥。我如何从控制台执行此操作?
答案1
如果需要,重新生成主机密钥(例如,如果更改模数长度):
ip ssh regenerate-host-key
CLI 将暂停一会儿。恢复后:
ip ssh export-host-key
file print
你会得到类似这样的信息:
[admin@MikroTik] > file print
# NAME TYPE SIZE CREATION-TIME
0 hostKey_rsa file 3272 jan/03/1970 18:35:53
1 hostKey_rsa.pub ssh key 796 jan/03/1970 18:35:53
2 hostKey_dsa file 668 jan/03/1970 18:35:53
3 hostKey_dsa.pub ssh key 604 jan/03/1970 18:35:53
打印您想要的一个:
file print detail where name=hostKey_rsa.pub
删除打印密钥开头的多余空格,并将其放入文件中,例如 router_pubkey.pem。然后在您的盒子上:
openssl rsa -in router_pubkey.pem -pubin -RSAPublicKey_out |
ssh-keygen -f /dev/stdin -i -m PEM |
ssh-keygen -f /dev/stdin -r hostname
openssl 命令将密钥转换为 PKCS#1 格式(只是一个整数序列,而不是 ASN.1 rsaEncryption 对象)。ssh-keygen 调用分别将密钥导入 OpenSSH 格式,然后生成指纹并打印 SSHFP 记录。