确定 Windows 10 主机的“ECDSA 密钥指纹”

确定 Windows 10 主机的“ECDSA 密钥指纹”

在两台 Linux 机器之间设置 SSH 功能时,我面临以下问题:

The authenticity of host 'x.x.x.x (y.y.y.y)' can't be established.
ECDSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)?

我使用以下命令(在主题主机(服务器)中)来验证所述指纹是否正确:

ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub

但是,当从 Linux SSH 客户端到 Windows 10 SSH 服务器设置 SSH 功能时,面临同样的挑战,如何从所述 Windows 10 SSH 服务器中提取所述 ECDSA 密钥指纹?

答案1

Windows 10 SSH 服务器也是 OpenSSH,包含相同的命令。它将主机密钥存储在 中C:\ProgramData\ssh

ssh-keygen -lf C:/ProgramData/ssh/ssh_host_ecdsa_key.pub
ssh-keyscan localhost | ssh-keygen -lf -

第三方 SSH 服务器可能有自己的命令,例如 Bitvise WinSSHD 有一个用于主机密钥管理的图形界面,但ssh-keyscan也可以与这些命令一起使用。

答案2

事实证明,我使用的是旧版本的 SSH(6.7)。为了获取与 OP 中所示格式相同的 ECDSA 密钥指纹,需要在 Windows 10 主机上以管理员权限运行以下命令:

ssh-keygen -l -E md5 -f C:/ProgramData/ssh/ssh_host_ecdsa_key.pub

我能够根据 user1686 提供的信息拼凑出这个命令

更新:仅供参考,以上信息适用于Debian 杰西在 Linux 客户端上(服务器是 Windows 10 机器)。

在下面Debian Stretch

在上述 Linux 客户端上:

~$ ssh -V
OpenSSH_7.4p1 Debian-10+deb9u8, OpenSSL 1.0.2u  20 Dec 2019

在所述 Windows 10 服务器上(命令行):

C:\Users\booboo>ssh -V
OpenSSH_9.4p1, OpenSSL 1.1.1v  1 Aug 2023

在这种情况下,为了获取所需格式的 ECDSA 密钥指纹,需要在 Windows 10 主机上以管理员权限运行以下命令:

ssh-keygen -lf C:/cygwin64/etc/ssh_host_ecdsa_key.pub

我不知道为什么ssh_主机_ecdsa_key.pub存档于cygwin64文件夹必须使用(相对于驻留在程序数据文件夹,如之前所称的Debian 杰西)。

相关内容