JSch ist nicht dokumentiert

  • Themenstarter Themenstarter C_A
  • Beginndatum Beginndatum
C

C_A

Gast
Hallo,

ich habe mir vor einiger Zeit die Bibliothek JSch geladen und versuche, auf SFTP zuzugreifen.

Es gibt in den Beispielen eine Datei, die diese Arbeit demonstriert, und ich konnte die relevanten Teile in meine Methode übernehmen. Jetzt habe ich dennoch eine Frage: Sehe ich das richtig, dass JSch außer in den Beispielen überhaupt nicht dokumentiert ist? Habt Ihr einen heißen Tip?

Kennt sich von Euch jemand zufällig mit der Passworteingabe aus? Im Beispiel finde ich
Java:
         // username and password will be given via UserInfo interface.
        UserInfo ui = new MyUserInfo();
        session.setUserInfo(ui);
Die Benutzereingabe finde ich hinderlich, weil ich die Zugangsdaten schon wo anders hinterlegt habe. Ich umgehe die Eingabe, indem ich dem UserInfo das Passwort als Parameter im Konstruktor mitgebe, aber glücklich bin ich mit der Lösung nicht:
Java:
        UserInfo ui = new MyUserInfo(verbindungsdaten[2]);
Warum wird die Verbindung verweigert (Exceptiontext "Auth fail"), wenn ich anstelle von UserInfo die Methode setPassword() aufrufe?
Java:
        session.setPassword(verbindungsdaten[2]);

Grüße
Florian
 
Ich poste die Lösung, falls wer anders mal auf das Problem läuft:

Java:
 private final Session SESSION = null;
 final Hashtable<String, String> CONFIG = new Hashtable<String, String>();

    // Konstruktor
    Server(String beschreibung, String host, String user, int port)
    {
        // ... 
        try
        {
            SESSION = JSCH.getSession(user, host, port);
        }
        catch (JSchException ex)
        {
            Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
        }
        CONFIG.put("StrictHostKeyChecking", "no");
        CONFIG.put("PreferredAuthentications", "password"); // DARAN lag's ... 

        SESSION.setConfig(CONFIG);
    {

Und dann geht auch:
Java:
    public void verbinden(String passwort)
    {
        SESSION.setPassword(passwort);
        //  UserInfo ui = new MyUserInfo(passwort);
        //     SESSION.setUserInfo(ui);
        try
        {
            SESSION.connect();
        }
        catch (JSchException ex)
        {
            Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

Interessant in diesem Zusammenhang: UNIX man pages : ssh_config (5) und SSH Configuration and Troubleshooting in Debian
 

Zurück
Oben