В командной строке Bitvise SSH Client (stnlc.exe) выдается ошибка при успешном подключении с графическим интерфейсом
Я интегрирую клиент Bitvise в свое приложение winform. Я использую командную строку Bitvise SSH Client (stnlc.exe в каталоге приложения) для этого. Мое приложение должно иметь несколько подключений одновременно. Он хорошо работает с некоторыми адресами, а с другими - нет. Это команда, которую я использую:
"C:\Program Files (x86)\Bitvise SSH Client\stnlc.exe" -profile="C:\Users\AutoOffer\AutoOffer\bin\Debug\data\sshprofile.bscp" -host=<myhost> -port=22 -user=<username> -pw=<password> -ka=y -proxyFwding=y -proxyListIntf=127.0.0.1 -proxyListPort=<port>
И это ошибка, которую я получил:
Bitvise SSH Client 6.45 - stnlc - free for individual use only, see EULA
Copyright (C) 2000-2015 by Bitvise Limited.
Connecting to SSH2 server XX.XX.XX.XX:22.
Connection established.
Server version: SSH-2.0-dropbear_0.46
First key exchange started.
ERROR: The SSH2 session has terminated with error.
Reason: Error class: LocalSshDisconn, code: KeyExchangeFailed, message: FlowSshTransport: no mutually supported key exchange algorithm.
Local list: "ecdh-sha2-1.3.132.0.10,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group14-sha1".
Remote list: "diffie-hellman-group1-sha1".
Я попытался подключиться вручную с помощью приложения Bitvise с графическим интерфейсом, и он успешно подключился!
Я также обновил свою версию bitvise до последней версии (6.45).
3 ответа
Local list: "ecdh-sha2-1.3.132.0.10,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group14-sha1".
Remote list: "diffie-hellman-group1-sha1".
Так что, похоже, удаленная сторона просто поддерживает diffie-hellman-group1-sha1
, который не поддерживается на вашей стороне.
На истории версий сервера Bitvise SSH я читаю:
1024-битные фиксированные простые методы обмена ключами Диффи-Хеллмана, diffie-hellman-group1-sha1 и gssapi-group1-sha1 с Kerberos 5, теперь по умолчанию отключены из-за сомнений в сохранении безопасности Диффи-Хеллмана с фиксированным 1024-битным премьер. Совместимость с большинством старых клиентов следует поддерживать с помощью метода diffie-hellman-group14-sha1, в котором используется 2048-битное фиксированное простое число. Мы рекомендуем перенастроить старые SSH-клиенты на новые версии, поддерживающие ECDH и ECDSA.
Похоже, вам нужно изменить настройки и разрешить 1024-битные фиксированные простые методы обмена ключами Диффи-Хеллмана. В противном случае вы не сможете подключиться. Как объяснено, конечно, лучше изменить настройки сервера ssh.
Также обратите внимание, что возможен запуск в качестве службы. С его помощью туннель может быть запущен даже без входа пользователя в систему и может быть перезапущен после отбрасывания.
Имейте в виду, что упаковка и запуск
stnlc
как услуга (например, с использованием.
nssm
или
winsw
) абсолютно необходимо добавить
unat=y
возможность запретить сервису стать интерактивным и дать сбой.
Я получил ту же ошибку при работе с BitWise Tunnelier:
Соединение SSH прервано с ошибкой. Причина: Класс ошибки: LocalSshDisconn, код: KeyExchangeFailed, сообщение: FlowSshTransport: нет взаимно поддерживаемого алгоритма обмена ключами.
Для меня решением было увеличить минимальные биты DH gex на вкладке SSH с 1023 до 2047.
Серверная часть претерпела некоторые изменения/обновления.