从 18.04 升级到 22.04 后,连接到远程箱时 SSH 指纹发生变化

从 18.04 升级到 22.04 后,连接到远程箱时 SSH 指纹发生变化

我的本地机器上有一个 PHP 脚本,用于连接到远程机器。远程机器上没有任何变化。当我通过命令行连接时,使用ssh终端中的命令,指纹没有任何变化。但是,我存储指纹以检查其安全性的 PHP 脚本生成了指纹不匹配的错误。

检索指纹的相关 PHP 代码行是:

$fingerprint=ssh2_fingerprint($session, SSH2_FINGERPRINT_SHA1);

当我在 Ubuntu 18 上运行 PHP 7.2 时,升级后会检索到与之前不同的指纹。我现在运行的是 PHP 8.1。即使我将配置设置为显示所有内容,该脚本也不会生成任何错误、警告或通知,在旧版本下也不会生成任何错误、警告或通知。

我显然可以更新指纹,但我想了解为什么这个指纹会发生变化,因为这对我来说没有意义,而且当终端的连接没有变化时,我无法想到任何解释为什么它会改变。

答案1

ECDSA这可能与OpenSSHED25519在 8.5 版本(2021-03-03 发布)中将默认签名算法从 更改为 有关。

以下是一段引文OpenSSH 8.5 发布日志

Potentially-incompatible changes
================================

This release includes a number of changes that may affect existing
configurations:

 * ssh(1), sshd(8): this release changes the first-preference signature
   algorithm from ECDSA to ED25519.

我想你会感兴趣: 什么原因会导致 ssh 指纹改变?

相关内容