У меня есть приложение, в котором я использую Renci.SshNet SftpClient для передачи файлов на сервер поставщика с использованием SFTP через SSH. У меня нет проблем при подключении к их производственной площадке. Однако у меня есть проблемы с подключением к их тестовому сайту.
При использовании Renci.SshNet SftpClient вызов никогда не возвращается после вызова sftp.Connect() (даже не истекает время ожидания).
Я пытался использовать другие инструменты, чтобы исследовать проблему. Я попытался использовать WinScp, и на этот раз я получил сообщение об ошибке при попытке подключения. Ошибка была "Входящий пакет был искажен при расшифровке". Опять же, никаких проблем при попытке подключения к их производственной площадке. Проблема была при попытке подключиться к их тестовому сайту.
Я наткнулся на сообщение о том, что у кого-то такая же проблема, и решил ее, переместив в настройках WinScp алгоритм шифрования Blowfish наверх https://serverfault.com/questions/548509/putty-incoming-packet-искажено-при-дешифровании . Я попробовал это, и это сработало.
Затем я нашел сообщение о том, что кто-то использует Renci.SshNet, и как часть его кода он удаляет все алгоритмы шифрования, кроме Blowfish.
Я попробовал это в своем коде, и тогда это сработало.
Мой вопрос: может ли кто-нибудь помочь мне понять, почему этот подход сработал. Кроме того, кажется, что это может быть известная проблема? почему кто-то еще удаляет все алгоритмы, кроме Blowfish, как часть обычного кода?
Я также попробовал тот же код (удалив все алгоритмы шифрования, кроме blowfish) на рабочем сайте, и он тоже сработал.
Большое спасибо Сесилия