【问题标题】:How to get key fingerprint for SFTP from private key?如何从私钥获取 SFTP 的密钥指纹?
【发布时间】:2023-03-13 06:42:02
【问题描述】:

因为我正在开发一个使用 WinSCP .NET 程序集的 .NET C# 项目,用于 SFTP 无密码连接。到目前为止,我已经制作了一个 UI,我们必须在其中提供 SSH 密钥指纹、释义和 .ppk 文件的路径。

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

【问题讨论】:

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


    【解决方案1】:

    .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

    例如,请参阅Implementing SSH host key cache (known hosts)

    【讨论】:

    • 好的,但是当我使用 winscp 桌面应用程序连接时,我只需要提供 .ppk 文件路径、用户名和释义。但是在编码时我必须提供 SshHostKeyFingerprint。那么,如果我想复制winscp桌面应用程序的功能,我该怎么办?请帮忙。
    • 这不是真的。当您第一次使用 WinSCP 连接到特定主机/服务器时,WinSCP 会要求您确认您是否信任该服务器的主机密钥。
    • 是的,但请帮我在我的代码中复制它。
    • 好的,我认为在我的 UI 中不会有任何改进,用户仍然需要输入 ssh 密钥指纹。
    • @PranayDeep The Session.ScanFingerprint 现已推出。
    猜你喜欢
    • 1970-01-01
    • 2020-02-12
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 2017-03-07
    • 2017-11-15
    相关资源
    最近更新 更多