"No supported authentication methods available" while connecting to SFTP using WinSCP in C#

StackOverflow https://stackoverflow.com/questions/13987069

  •  11-12-2021
  •  | 
  •  

Вопрос

I'm trying to connect to a SFTP server using WinSCP in C#. This is my code:

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);
}

But when I run the application and it reaches this like

session.Open(sessionOptions);

I get this Error:

Disconnected: No supported authentication methods available (server sent: publickey,gssapi-with-mic)

Это было полезно?

Решение

You should use private key without password or pageant, since WinSCP C# classes don't support setting password for private key.

Другие советы

The latest version of WinSCP .NET assembly does support setting passphrase to an encrypted private key.

Use the SessionOptions.PrivateKeyPassphrase.

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

See also Automating private key authentication in WinSCP FAQ.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top