Мы используем библиотеку для подключения через ssh с именем пользователя и паролем. Иногда метод connection.authenticateWithPassword возвращает значение false (полученное сообщение: SSH_MSG_USERAUTH_FAILURE) и другие работает правильно, возвращая значение true.
Имя пользователя и пароль верны во всех случаях.
На данный момент для подключения доступно множество методов: publickey, gssapi-keyex, gssapi-with-mic и password. Среди них присутствует метод пароля, и на самом деле метод connection.isAuthMethodAvailable (this.username, "password") возвращает значение true.
Мы добавили ведение журнала библиотеки, но до сих пор не нашли никаких ошибок.
Есть идеи, чтобы помочь нам?
private Connection createConnection() throws IOException, InterruptedException {
logger.debug("Creating ssh connection...");
Connection connection = new Connection(this.ip, this.port);
connection.setTCPNoDelay(this.tcpNoDelay);
connection.connect(null, this.connectTimeout, this.kexTimeout);
if(connection.isAuthMethodAvailable(this.username, "password")) {
if(!connection.authenticateWithPassword(this.username, this.password)) {
logger.debug("Authentication failed!");
connection.close();
throw new IOException("Authentification failed");
}
} else {
logger.debug("Authentication password method is not available!!");
}
logger.debug("Connection was created successfull!");
return connection;
}