2016-10-26 7 views
0

Ich versuche eine einfache Datei aus einem Pfad in meinem UAT-Server zu lesen. Testen von meinem lokalen - ich bekomme immer die JschException: Auth fail. Der Code, den ich wie unten bin mit:jsch Auth Fail beim Verbinden mit einer Unix-Box

java.util.Properties config = new java.util.Properties(); 
     config.put("StrictHostKeyChecking", "no"); 

     Session session = jsch.getSession(user, host, 22); 
     session.setConfig(config); 
     session.connect(); 

     String passwd = "----"; 
     session.setPassword(passwd); 
     Channel channel = session.openChannel("exec"); 

Ich habe versucht, den Schlüssel zu den known_hosts meiner lokalen Laufwerk hinzuzufügen, aber es ändert nichts. Der Fehler, den ich bekomme, ist wie folgt:

com.jcraft.jsch.JSchException: Auth fail 
at com.jcraft.jsch.Session.connect(Session.java:473) 
at com.jcraft.jsch.Session.connect(Session.java:145) 
at gundam.uatchecker.impl.Shell.main(Shell.java:91) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 

Einige Hilfe würde sehr geschätzt werden. Zusätzlich habe ich versucht, wie unten bekannte Hosts hinzuzufügen:

ssh-keyscan remote_server > ~/.ssh/known_hosts 

Auch andere Beiträge - kein scheinen, hier zu arbeiten. Irgendwelche Ideen?

+0

Vielleicht müssen Sie Ihr Passwort angeben, bevor Sie eine Verbindung herstellen? – zack6849

+0

Versucht, dies auch anzugeben - leider keine Verwendung. – Amby

Antwort

0

Im Folgenden Code funktioniert: -

JSch jsch = new JSch(); 

    String path = "PATH TO PRIVATE KEY"; 


    jsch.addIdentity(path); 

    jsch.setConfig("StrictHostKeyChecking", "no"); 

    Session session = jsch.getSession(userName, ipToConnect, portToConnect); 
    session.connect(); 

    Channel channel = session.openChannel("exec"); 

    ((ChannelExec)channel).setCommand("COMMAND TO FIRE"); 

    channel.setInputStream(null); 

    ((ChannelExec)channel).setErrStream(System.err); 

    InputStream in = channel.getInputStream(); 

    channel.connect(); 

    //Read Response Here 

    channel.disconnect(); 
    session.disconnect(); 
Verwandte Themen