SSH.NET Аутентификация только через закрытый ключ (аутентификация с открытым ключом)
Попытка аутентификации через имя пользователя и приватный ключ только с использованием текущей библиотеки SSH.NET. Я не могу получить пароль от пользователя, так что об этом не может быть и речи.
вот что я делаю сейчас
Renci.SshNet.ConnectionInfo conn =
new ConnectionInfo(hostName, port, username, new AuthenticationMethod[]
{
new PasswordAuthenticationMethod(username, ""),
new PrivateKeyAuthenticationMethod(username, new PrivateKeyFile[]
{ new PrivateKeyFile(privateKeyLocation, "") }),
});
using (var sshClient = new SshClient(conn))
{
sshClient.Connect();
}
Теперь, если я удалюPasswordAuthenticationMethod
отAuthenticationMethod[]
массив Я получаю исключение для не найдено подходящего метода аутентификации. Если я пытаюсь передать (имя хоста, порт, имя пользователя, keyfile2) как таковой
var keyFile = new PrivateKeyFile(privateKeyLocation);
var keyFile2 = new[] {keyFile};
опять же, подходящий метод не найден.
Кажется, я должен использоватьConnectionInfo
объект, как я изложил выше, но, похоже, он оцениваетPasswordAuthenticationMethod
и не могу войти (так как я не предоставляю пароль) и никогда не оцениваетPrivateKeyAuthMethod
... это так? Есть ли какой-либо другой способ аутентификации с использованием только имени пользователя или имени хоста и личного ключа с использованием SSH.NET lib?