phpseclib检查SSH指纹吗?

时间:2018-03-13 16:59:42

标签: ssh fingerprint phpseclib

很久以前,phpseclib没有检查SSH指纹。 phpseclib现在是否实现检查SSH指纹?

1 个答案:

答案 0 :(得分:0)

phpseclib始终能够通过$ssh->getServerPublicHostKey()方法检查指纹。该方法验证主机密钥是否对主机有效,如果是,则返回主机密钥以便本地保存(无论是数据库还是文件系统或其他)或检查您已有的主机密钥。文件。

phpseclib自第一次发布(0.1.0)以来已经有了这个,这是10多年前的事了:

https://github.com/phpseclib/phpseclib/blob/0.1.0/phpseclib/Net/SSH2.php#L1586 https://github.com/phpseclib/phpseclib/blob/0.1.0/phpseclib/Net/SSH2.php#L745

在初始版本中,无论您是否检索到主机密钥,都将检查签名。现在,只有在检索主机密钥时才会检查签名。

那就是说,phpseclib的Crypt_RSA类并不总是有一个getPublicKeyFingerprint()方法:

https://github.com/phpseclib/phpseclib/blob/1.0.10/phpseclib/Crypt/RSA.php#L1850

也许这就是你想到的,但如果是这样,那就完全无关紧要了。它们存在的原因是由于以下情况:

您连接到服务器,获取主机公钥并从中创建指纹。您打电话给服务器的操作员并检查他们的指纹。对于1024位RSA密钥,读取某个32位十六进制字符比读取某个256位十六进制字符更方便。

但话又说回来,你是否认为自己实际上正在调用SSH服务器的运营商呢?