JSchException timeout: socket ist nicht etabliert

Ich versuche, mit JSch eine Verbindung zu meinem computer über ssh und dann einen Befehl ausführen.

Allerdings, wenn ich den code ausführen ich habe nie an den computer anschließen. und der folgende Fehler:

I/System.out: com.jcraft.jsch.JSchException: timeout: socket is not established

Hier ist mein entsprechender code:

protected void sshTesting(){
    String name = "";
    String userName = "kalenpw";
    String password = "hunter2";
    String ip = "192.168.0.4";
    int port = 22;
    String command = "cmus-remote -u";

    try{
        JSch jsch = new JSch();
        Session session = jsch.getSession(userName, ip, port);
        session.setPassword(password);
        session.setConfig("StrictHostKeyChecking", "no");


        System.out.println("Establishing connection");
        session.connect(10);

        Channel channel = session.openChannel("exec");
        ((ChannelExec)channel).setCommand(command);
        channel.setInputStream(null);
        channel.connect(10000);

//           name = session.getUserName();
//           System.out.println(session.getHost());


    }
    catch(Exception e){
        System.err.print(e);
        System.out.print(e);
    }        

}

Dies ist mein erstes mal mit JSch, so bin ich so ziemlich nur nach einem Ihrer Beispiele Exec.java. Ich fand diese Antwort JSch/SSHJ - Verbindung zum SSH-server auf den button klicken, die leider mein code wie es aussieht, ist der Aufbau einer Verbindung, in ähnlicher Weise noch keine Ergebnisse. Ich habe getestet SSHing in mein computer normal und es funktioniert gut, also ich glaube nicht, dass das Problem mit dem server, aber mit meinem code.

Hier ist der gesamte stack-trace:

W/System.err: com.jcraft.jsch.JSchException: timeout: socket is not establishedcom.jcraft.jsch.JSchException: timeout: socket is not established
W/System.err:     at com.jcraft.jsch.Util.createSocket(Util.java:394)
W/System.err:     at com.jcraft.jsch.Session.connect(Session.java:215)
W/System.err:     at com.example.kalenpw.myfirstapp.RectangleClickActivity.sshTesting(RectangleClickActivity.java:97)
W/System.err:     at com.example.kalenpw.myfirstapp.RectangleClickActivity$1.onCheckedChanged(RectangleClickActivity.java:56)
W/System.err:     at android.widget.CompoundButton.setChecked(CompoundButton.java:165)
W/System.err:     at android.widget.Switch.setChecked(Switch.java:1151)
W/System.err:     at android.widget.Switch.toggle(Switch.java:1146)
W/System.err:     at android.widget.CompoundButton.performClick(CompoundButton.java:123)
W/System.err:     at android.view.View$PerformClick.run(View.java:22589)
W/System.err:     at android.os.Handler.handleCallback(Handler.java:739)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:95)
W/System.err:     at android.os.Looper.loop(Looper.java:148)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:7325)
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

RectangleClickActivity.java ist die Datei, die ich testen SSH.

Zeile 97: session.connect(10);

Zeile 56: sshTesting();

Haben Sie sich den traffic mit Wireshark zu sehen, ob es sogar versucht, eine Verbindung herzustellen? Niemand kann hier möglicherweise helfen, ohne weitere Informationen andere als nahe, dass es sich um ein Netzwerk-oder firewall-Problem zwischen zwei Systemen.
ja, ich kann mich verbinden, wenn Sie ein terminal. Ich habe gerade versucht mit Wireshark, es nie benutzt, bevor, also bin ich nicht sicher, wie Sie Sie analysieren im detail, aber wenn ich versuche zu verbinden gibt es mehrere Einträge mit mein computer " als Ziel, so glaube ich, es versucht zu verbinden. Ich bin mir nicht sicher, ob ein Netzwerk-oder firewall das Problem ist da ich bin auf dem gleichen lokalen Netzwerk, aber vielleicht gibt es. Was kann ich sonst noch feststellen?
Die Zeile in Ihrem code die Ausnahme ausgelöst? Poste auch das komplette stack-trace.
es ist die Linie, ich nenne session.connect(10) ich gerade bearbeitet alle, die in meiner Frage
Ich stark schlage vor, Sie überprüfen Sie den code für die com.jcraft.jsch.Util.createSocket das sieht ziemlich wackelig auf mich zu. Zur Implementierung eines timeout-es hat die Verbindung in einem thread und wenn der thread endet nicht durch den timeout erklärt er die Verbindung fehlgeschlagen ist. Ich würde hinzufügen der Quelle, um Ihre IDE-und trace in diese in Ihrem debugger, um zu sehen, was wirklich geschieht. Es könnte ein bug in JSch. Willkommen in der Welt von Open Source.... 🙂

InformationsquelleAutor kalenpw | 2017-02-25

Schreibe einen Kommentar