如何从私钥获取SFTP的密钥指纹?

时间:2015-12-07 06:59:24

标签: .net sftp public-key winscp winscp-net

当我正在使用WinSCP .NET程序集的.NET C#项目时,对于SFTP密码较少的连接。到目前为止,我已经创建了一个UI,我们必须提供SSH密钥指纹,释义和.ppk文件的路径。

我的问题是,有没有办法获得" SSH密钥指纹"如果用户仅提供其.ppk文件路径,则自动通过代码?

1 个答案:

答案 0 :(得分:4)

.ppk是您帐户的一对密钥,您可以使用SessionOptions.SshPrivateKeyPath指定。{/ p>

SessionOptions.SshHostKeyFingerprint的主机密钥用于服务器的密钥对(= host)。它不是密钥对的公钥。

这些密钥对没有任何共同之处。你不能从另一个中提取。

有关详细信息,请参阅Understanding SSH key pairs

另见Where do I get SSH host key fingerprint to authorize the server?

如果您想允许用户手动验证主机密钥,请使用Session.ScanFingerprint method检索指纹以进行验证。验证后,将验证的指纹分配给SessionOptions.SshHostKeyFingerprint

有关示例,请参阅Implementing SSH host key cache (known hosts)