"Нет поддерживаемых методов аутентификации" при подключении к 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.