【问题标题】:Why is SFTP fingerprint from FileZilla not accepted by WinSCP .NET assembly in C#?为什么 C# 中的 WinSCP .NET 程序集不接受来自 FileZilla 的 SFTP 指纹?
【发布时间】:2023-02-09 12:53:05
【问题描述】:

我正在设置使用 SFTP 将文件放到客户端的服务器上。我有一个 SFTP 服务器,用于在 Windows Server 2019 上使用 C# VS2022 中的 WinSCP 测试和开发客户端。我最初使用 FileZilla 登录到测试服务器并通过双击复制指纹。我将它粘贴到我的 C# 客户端中,它按预期工作。

我对客户端的 SFTP 服务器做了同样的事情,但我得到了错误:“SSH 主机密钥指纹与模式不匹配”.格式看起来确实与我的略有不同:

SHA256:tUlL3I72i+NOA.......DLTVoH35szgNVJiOGGhRV/ic

我的有 SHA256 [空间] 然后是足迹。我不确定 :tUlL3I72i+ 是什么,但我尝试删除它,将 + 变成空格等,但同样的错误。

我错过了什么,我该如何解决?

【问题讨论】:

    标签: c# sftp winscp filezilla winscp-net


    【解决方案1】:

    FileZilla的未知主机密钥框看起来像这样:

    在 WinSCP .NET 程序集中,它映射到 Session.SshHostKeyFingerprint 的以下值:

    "ssh-ed25519 255 1hI1HqP3IzoOWCABHGS7+GsrP2JUVsSs7oskK7HGP1E"
    

    虽然更简单的方法是use WinSCP GUI to generate a code template 为您服务:

    【讨论】:

      【解决方案2】:

      WinSCP 中的主机名只接受像 xxx.com 这样的域格式? ftp:// 不可能吗? 我有代理 ftp 的问题,但我只有 url。 请帮我。

      【讨论】: