使用C#中的WinSCP连接到SFTP时"没有可用的支持的身份验证方法"

Lah*_*hib 5 .net c# winscp winscp-net

我正在尝试使用C#中的WinSCP连接到SFTP服务器.这是我的代码:

SessionOptions sessionOptions = new SessionOptions
{
    Protocol = Protocol.Sftp,
    HostName = "ip",
    PortNumber = portNR,
    UserName = "username",
    Password = "",
    SshHostKeyFingerprint = "fingerPrint", 
    SshPrivateKeyPath = "\\PrivateKey\\PrivateKey.ppk ",
};

using (Session session = new Session())
{
    session.Open(sessionOptions);
}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行应用程序时,它达到了这个目的

session.Open(sessionOptions);
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

已断开连接:没有可用的支持身份验证方法(服务器已发送:publickey,gssapi-with-mic)

Nic*_*sky 3

您应该使用没有密码或 pageant 的私钥,因为 WinSCP C# 类不支持为私钥设置密码。

  • 有免费/开源 C# BouncyCastle 库,它们应该支持 SFTP。还有商业SecureBlackbox库,它肯定支持SFTP和私钥密码。 (2认同)