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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With