Ich versuche, Java zu verwenden, um eine Verbindung zu einem Linux-Server herzustellen, der über eine zweistufige Verifizierungsanmeldung verfügt. Ich bin die jsch-Bibliothek, das ist der Code, den ich bisher habe:Bestätigung in zwei Schritten mit der JSCH-Bibliothek
session = jsch.getSession(username, ip);
Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.setPassword(password);
session.connect();
System.out.println("Connected to " + ip);
Natürlich, wenn ich dieses Skript ausführen ich erhalte einen „Auth fehlgeschlagen“ Fehler wie ich nicht den Authentifizierungsschlüssel eingeben. Wie logge ich mich mit dem Bestätigungsschlüssel ein? Wenn dies nicht möglich ist, könnte jemand eine Bibliothek vorschlagen, die diese Funktionalität hat.
Dies meldet sich mit Putty beim Server an. Sie geben also den Benutzernamen ein, dann den generierten Code auf Zeitbasis und dann das Passwort.
Sind Sie Kann ich mich mit dem Kommandozeilen-SSH-Dienstprogramm bei diesem Host anmelden? Bitte führen Sie ssh aus, um sich bei diesem Server anzumelden, und fügen Sie die Option -vvv hinzu, damit ssh Debugging-Informationen ausgeben kann. Bearbeiten Sie dann Ihre Frage, um den von Ihnen ausgeführten Befehl ssh und die von ihm erstellte Ausgabe einzuschließen. Dies würde den Menschen helfen zu wissen, wie diese zusätzliche Überprüfung durchgeführt wird. – Kenster
Das ist nicht wirklich möglich, da die zusätzliche Überprüfung zeitbasiert ist. Daher wird eine geheime Zeichenfolge an eine Java-Methode übergeben, die dann den Schlüssel für den zweiten Teil der Überprüfung zurückgibt. –
Der Punkt meines Vorschlags war zu verstehen, wie dieser Verifikationsschritt durch das ssh Protokoll erfolgt. – Kenster