【发布时间】:2023-03-13 06:42:02
【问题描述】:
因为我正在开发一个使用 WinSCP .NET 程序集的 .NET C# 项目,用于 SFTP 无密码连接。到目前为止,我已经制作了一个 UI,我们必须在其中提供 SSH 密钥指纹、释义和 .ppk 文件的路径。
我的问题是,如果用户只提供其.ppk 文件路径,有没有办法通过代码自动获取“SSH 密钥指纹”?
【问题讨论】:
标签: .net sftp public-key winscp winscp-net
因为我正在开发一个使用 WinSCP .NET 程序集的 .NET C# 项目,用于 SFTP 无密码连接。到目前为止,我已经制作了一个 UI,我们必须在其中提供 SSH 密钥指纹、释义和 .ppk 文件的路径。
我的问题是,如果用户只提供其.ppk 文件路径,有没有办法通过代码自动获取“SSH 密钥指纹”?
【问题讨论】:
标签: .net sftp public-key winscp winscp-net
.ppk 是您帐户的密钥对,您使用 SessionOptions.SshPrivateKeyPath 指定。
而SessionOptions.SshHostKeyFingerprint 的主机密钥用于服务器的密钥对(= 主机)。它不是您的密钥对的公钥。
这些密钥对没有任何共同之处。你不能从另一个中提取一个。
详情请见Understanding SSH key pairs。
另见Where do I get SSH host key fingerprint to authorize the server?
如果您想允许用户手动验证主机密钥,请使用Session.ScanFingerprint method 检索指纹进行验证。验证后,将验证后的指纹分配给SessionOptions.SshHostKeyFingerprint。
【讨论】:
Session.ScanFingerprint 现已推出。