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

时间:2012-12-21 09:02:15

标签: c# .net 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);
}

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

那样
session.Open(sessionOptions);

我收到此错误:

  

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

最新版本的WinSCP .NET程序集支持将密码短语设置为加密的私钥。

使用SessionOptions.PrivateKeyPassphrase

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

另请参阅WinSCP常见问题解答中的Automating private key authentication