Java SSH Ganymed-尝试连接用户名和密码的随机错误

时间:2019-04-15 13:18:30

标签: java ssh

我们正在使用该库通过ssh通过用户名和密码进行连接。有时,方法 connection.authenticateWithPassword 返回false(收到的消息:SSH_MSG_USERAUTH_FAILURE),其他方法可以正常返回true。 用户名和密码在任何情况下都正确。

目前尝试连接的方法有很多:公用密钥,gssapi-keyex,gssapi-with-mic和密码。其中包括密码方法,实际上, 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;
    }

1 个答案:

答案 0 :(得分:0)

您能否提供有关成功和失败的更多详细信息。目前尚不清楚成功和失败是在一台设备上随机发生的,还是您成功地对一台设备进行了身份验证,但是对另一台设备却失败了?

如果针对特定设备的故障持续出现,那么设备会报告哪些身份验证选项?