SSHJ не может подключиться к удаленному серверу Linux, выдает UserAuthException: исчерпаны доступные методы аутентификации

Я пытаюсь запустить следующий код Java, используя sshj: -

public static void main(String[] args) throws IOException {

    SSHClient ssh = new SSHClient();
    ssh.loadKnownHosts();
    ssh.connect("host", port);
    try {
        ssh.authPassword("user", "passwd");
        ssh.useCompression();

        final String src = System.getProperty("user.home") + File.separator + "test_file";
        ssh.newSCPFileTransfer().upload(new FileSystemFile(src), "/tmp/");
    } finally {
        ssh.disconnect();
        ssh.close();
    }
}

Но это исключение -

Exception in thread "main" net.schmizz.sshj.userauth.UserAuthException: Exhausted available authentication methods
    at net.schmizz.sshj.SSHClient.auth(SSHClient.java:231)
    at net.schmizz.sshj.SSHClient.auth(SSHClient.java:206)
    at net.schmizz.sshj.SSHClient.authPassword(SSHClient.java:292)
    at net.schmizz.sshj.SSHClient.authPassword(SSHClient.java:262)
    at net.schmizz.sshj.SSHClient.authPassword(SSHClient.java:246)
    at sample.SCPUpload.main(SCPUpload.java:17)

Я могу подключить хост, используя те же учетные данные, через Putty. Я использую JDK "1.8.0_151". Что здесь не так?


person Saikat    schedule 25.02.2018    source источник
comment
Как заявил Иери Номус, метод аутентификации «пароль» может быть запрещен. Посмотрите, что ssh.getUserAuth().getAllowedMethods() возвращает после неудачной аутентификации, например. в блоке finally.   -  person Jokkeri    schedule 17.07.2018


Ответы (1)


Обычно это означает, что либо ваш пароль неверный, либо вам не разрешено подключаться с использованием метода аутентификации «пароль».

person Hiery Nomus    schedule 02.03.2018