"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