"Нет поддерживаемых методов аутентификации" при подключении к SFTP с использованием WinSCP в C#

Я пытаюсь подключиться к серверу SFTP с помощью WinSCP в C#. Это мой код:

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 ответа

Решение

Вы должны использовать закрытый ключ без пароля или зрелища, так как классы WinSCP C# не поддерживают установку пароля для закрытого ключа.

Последняя версия сборки WinSCP .NET поддерживает установку парольной фразы в зашифрованный закрытый ключ.

Использовать SessionOptions.PrivateKeyPassphrase,

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

См. Также Автоматизация аутентификации с помощью закрытых ключей в WinSCP FAQ.

Другие вопросы по тегам