Проблемы с SSH-соединением в JSch

Я пытаюсь подключиться к серверу с помощью JSch. Я получаю ошибку "Ошибка согласования". Я проверил файл sshd_config и получил следующую информацию:

UsePAM yes
PasswordAuthentication no
Ciphers aes128-ctr,aes256-ctr,arcfour256,arcfour,aes128-cbc,aes256-cbc
AllowTcpForwarding no
PermitRootLogin no

Остальные сценарии закомментированы. Как видите, ничего не говорится о поддерживаемых методах обмена ключами. 1. В этом ли проблема? или есть какая-то другая причина, по которой эта ошибка появляется? Мне очень трудно получить разрешение на внесение изменений и тестирование, поэтому я хотел сначала убедиться, а затем применить изменения.

Кроме того, это все, что я получаю от регистратора:

INFO: Connecting to xx.xxx.xxx.xxx port 22
INFO: Connection established
INFO: Remote version string: SSH-2.0-OpenSSH_5.1
INFO: Local version string: SSH-2.0-JSCH-0.1.31
INFO: SSH_MSG_KEXINIT received
INFO: SSH_MSG_KEXINIT sent
Exception in thread "main" com.jcraft.jsch.JSchException: Algorithm negotiation fail
    at com.jcraft.jsch.Session.receive_kexinit(Session.java:540)
    at com.jcraft.jsch.Session.connect(Session.java:288)
    at com.jcraft.jsch.Session.connect(Session.java:145)
    at SSHConnection.connect(SSHConnection.java:21)
    at SSHConnection.main(SSHConnection.java:25)
  1. Есть ли другие способы выяснить методы обмена ключами, поддерживаемые сервером?
  2. Есть ли другие способы подключения к этому серверу? Мне нужно интегрировать это в мою программу Java.

1 ответ

Решение

Я обнаружил проблему, оказалось, что мне пришлось скачать Java Cryptography Extension (JCE) и заменить файлы теми, которые существуют в папке безопасности по следующему пути: C:\Program Files\Java\jre6\lib\ безопасность\

Надеюсь, что это поможет тому, у кого такая же проблема.

Другие вопросы по тегам