在 C# 中使用 WinSCP 连接到 SFTP 时"No supported authentication methods available"



我正在尝试使用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);
}

但是当我运行应用程序时,它像

一样到达
session.Open(sessionOptions);

我得到此错误:

断开连接:无需提供支持的身份验证方法(服务器发送:publicKey,gssapi-with-mic)

您应该使用没有密码或选美大赛的私钥,因为winscp c#类不支持私钥设置密码。

WINSCP .NET组装的最新版本确实支持将密码设置为加密的私钥。

使用SessionOptions.PrivateKeyPassphrase

SessionOptions sessionOptions = new SessionOptions
{
    ...
    SshPrivateKeyPath = "\PrivateKey\PrivateKey.ppk",
    SshPrivateKeyPassphrase = "passphrase",
};

另请参见WINSCP常见问题中的自动化私钥身份验证。

相关内容

最新更新