对于我们许多人来说openssh我们有他们的服务器指纹在 DNS 中(SSHFP)。我们还没有使用安全 DNS,也就是说,虽然 FP 在 DNS 中,但像
ssh -o VerifyHostKeyDNS=yes <user>@sshserver
将会得到如下答复
Matching host key fingerprint found in DNS.
不幸的是,但完全按照人类的人SSH
Host key verification failed.
由于我们有许多外部客户看到此消息,因此经常会引起困惑和疑问。有没有办法更改这些消息?
答案1
这些信息是硬编码到 SSH 客户端。因此,不幸的是,如果不更改源代码中的消息,则无法为所有可能的平台重新编译二进制文件并将这些文件分发给您的客户,然后客户必须用修改后的版本替换官方二进制文件,这是无法做到这一点的。
从 sshconnect2.c 中提取:
verify_host_key_callback(struct sshkey *hostkey, struct ssh *ssh)
{
if (verify_host_key(xxx_host, xxx_hostaddr, hostkey) == -1)
fatal("Host key verification failed.");
return 0;
}