2016-03-14 6 views
0

Я использую Renci.SSHNet для установления соединения с серверами SFTP. Я сделал это без каких-либо проблем, но недавно я столкнулся с сервером, к которому я не могу установить соединение через свой код.
я получаю следующее сообщение об ошибке:SHA2 сервер SFTP отпечатки пальцев с использованием Renci.SshNet

No suitable authentication method found to complete authentication (publickey,keyboard-interactive).

Дело в том, я знаю, хозяин, пользователя и пароль правильны, как я могу установить соединение с помощью FileZilla. Я заметил, что при подключении к другим серверам с помощью FileZilla отпечатки пальцев для тех, с которыми я могу подключиться с моим кодом, генерируются через RSA, а не тот, который вызывает у меня проблемы, то есть SHA2.

TL/DR: Что мне интересно: это библиотека Renci.SshNet.SFTP, совместимая с sha-2 сгенерированными отпечатками пальцев, или мне придется использовать для этого другую библиотеку?

+0

Что такое AuthenticationMethod, с которым вы строите экземпляр ConnectionInfo? – trousyt

+0

Вы спрашиваете о ключе сервера или ключа пользователя? –

+0

@trousyt это делается так: общественного SSHFileTranferProtocol (строка HostName, внутр порт, строка UserName, строка пароля) { PasswordConnectionInfo connectionInfo = новый PasswordConnectionInfo ((HostName, порт, имя пользователя, пароль); SFTP = новый SftpClient (connectionInfo) sTransferResultMessage = ""; } – user6062387

ответ

0

Библиотека SSH.NET не поддерживает алгоритмы обмена ключами ECDSA (ecdh-sha2- *) еще (начиная с версии 2014.4.6-beta2).

Он поддерживает следующие:

  • Диффи-Хеллмана-группа обменных sha256
  • Диффи-Хеллмана-группа-обменно-sha1
  • Диффи-Хеллмана-group14-sha1
  • Диффи hellman-group1-sha1

Замечания ecdh-sha2 - *, вероятно, потому, что реализация не завершена/протестирована.


Отметьте, что сервер может поддерживать несколько алгоритмов и может согласовать другой алгоритм с разными клиентами.

Так что факт, что вы видите неподдерживаемый тип ключа в FileZilla, не означает, что сервер обязательно настаивает на этом типе ключа.

Понятно, что сервер не требует обмена ключами ECDSA из-за того, что соединение завершилось неудачно на этапе аутентификации. Аутентификация происходит только после успешный обмен ключами. Поэтому ваша корневая проблема - это не обмен ключами, а аутентификация.

Если вам нужна помощь в решении проблемы аутентификации, start a new question, включите соответствующий исходный код, файл журнала FileZilla и объясните, что вы сделали, чтобы настроить аутентификацию на стороне сервера. Может оказаться полезным и файл журнала на стороне сервера.

+0

Большое спасибо!Я постараюсь собрать как можно больше информации, и тогда я начну новый вопрос. – user6062387