Я пытаюсь выполнить авторизацию с открытым/закрытым ключом, но это работает только на некоторых серверах.
Приведенный ниже код работает при подключении к локальному побитовому серверу и также при подключении к локальному серверу CrushFTP, но он не работает при подключении к удаленному серверу со строкой версии «SSH-2.0-LiquidSftp».
Один и тот же открытый ключ был загружен на все серверы.
JSch jsch = new JSch();
JSch.setLogger(new Log4jLogger());
jsch.addIdentity("privatekey.ppk", "mySecretPassPhrase");
String host = "someserver.com";
String username = "myUsername";
int port = 1100;
Session session = jsch.getSession(username, host, port);
session.setConfig("StrictHostKeyChecking", "no");
session.setConfig("kex","diffie-hellman-group-exchange-sha1");
UserInfo ui = new MyUserInfo();
session.setUserInfo(ui);
session.connect();
Из сообщений об инициализации обмена ключами, отслеживаемых Wireshark и зарегистрированных в Java, я вижу, что сервер поддерживает алгоритм diffie-hellman-group-exchange-sha1, но происходит сбой при попытке проверить подпись в SSH_MSG_KEX_DH_GEX_REPLY
Я пытаюсь выполнить авторизацию с открытым/закрытым ключом, но это работает только на некоторых серверах.
Приведенный ниже код работает при подключении к локальному побитовому серверу и также при подключении к локальному серверу CrushFTP, но он не работает при подключении к удаленному серверу со строкой версии «SSH-2.0-LiquidSftp». Один и тот же открытый ключ был загружен на все серверы.
[code]JSch jsch = new JSch(); JSch.setLogger(new Log4jLogger());
UserInfo ui = new MyUserInfo(); session.setUserInfo(ui); session.connect(); [/code]
Из сообщений об инициализации обмена ключами, отслеживаемых Wireshark и зарегистрированных в Java, я вижу, что сервер поддерживает алгоритм diffie-hellman-group-exchange-sha1, но происходит сбой при попытке проверить подпись в SSH_MSG_KEX_DH_GEX_REPLY