2016-05-17 17 views
7

Ich habe eine neue JSch 0.1.53 library heruntergeladen und die JSch (sftp) Download-Aufgabe funktioniert nicht mehr. Diese Version schlägt auf session.connect() Funktion fehl, die einen Fehler Session.connect: java.io.IOException: End of IO Stream Read auslöst.JSch 0.1.53 session.connect() löst "Ende des IO Stream Read" aus

Meine alte jsch.jar (2011-10-06) funktioniert gut auf dem gleichen Host, vielleicht fehlt mir eine neue Config Requisiten?

Session session=null; 
ChannelSftp channel=null; 
try { 
    JSch.setLogger(SSHUtil.createJschLogger()); 

    JSch jsch=new JSch(); 
    session=jsch.getSession("myuser", "11.22.33.44", 22); 
    session.setConfig("StrictHostKeyChecking", "no"); 
    session.setPassword("mypwd"); 
    session.connect(2000); // <-- FAILS HERE 
    channel = (ChannelSftp)session.openChannel("sftp"); 
    channel.connect(2000); 
    ... 

Dies ist eine umfangreiche JSch Protokollierung, die anzeigt, was los ist.

INFO : Connecting to 11.22.33.44 port 22 
INFO : Connection established 
INFO : Remote version string: SSH-2.0-OpenSSH_6.6.1 
INFO : Local version string: SSH-2.0-JSCH-0.1.53 
INFO : CheckCiphers: aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-ctr,arcfour,arcfour128,arcfour256 
INFO : aes256-ctr is not available. 
INFO : aes192-ctr is not available. 
INFO : aes256-cbc is not available. 
INFO : aes192-cbc is not available. 
INFO : CheckKexes: diffie-hellman-group14-sha1,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521 
INFO : diffie-hellman-group14-sha1 is not available. 
INFO : ecdh-sha2-nistp256 is not available. 
INFO : ecdh-sha2-nistp384 is not available. 
INFO : ecdh-sha2-nistp521 is not available. 
INFO : CheckSignatures: ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521 
INFO : ecdsa-sha2-nistp256 is not available. 
INFO : ecdsa-sha2-nistp384 is not available. 
INFO : ecdsa-sha2-nistp521 is not available. 
INFO : SSH_MSG_KEXINIT sent 
INFO : SSH_MSG_KEXINIT received 
INFO : kex: server: [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 
INFO : kex: server: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ssh-ed25519 
INFO : kex: server: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,[email protected],[email protected],[email protected],aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected] 
INFO : kex: server: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,[email protected],[email protected],[email protected],aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected] 
INFO : kex: server: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-md5,hmac-sha1,[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 
INFO : kex: server: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-md5,hmac-sha1,[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 
INFO : kex: server: none,[email protected] 
INFO : kex: server: none,[email protected] 
INFO : kex: server: 
INFO : kex: server: 
INFO : kex: client: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1 
INFO : kex: client: ssh-rsa,ssh-dss 
INFO : kex: client: aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc 
INFO : kex: client: aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc 
INFO : kex: client: hmac-md5,hmac-sha1,hmac-sha2-256,hmac-sha1-96,hmac-md5-96 
INFO : kex: client: hmac-md5,hmac-sha1,hmac-sha2-256,hmac-sha1-96,hmac-md5-96 
INFO : kex: client: none 
INFO : kex: client: none 
INFO : kex: client: 
INFO : kex: client: 
INFO : kex: server->client aes128-ctr hmac-md5 none 
INFO : kex: client->server aes128-ctr hmac-md5 none 
INFO : SSH_MSG_KEX_DH_GEX_REQUEST(1024<1024<1024) sent 
INFO : expecting SSH_MSG_KEX_DH_GEX_GROUP 
INFO : Disconnecting from 11.22.33.44 port 22 
Exception in thread "main" com.jcraft.jsch.JSchException: Session.connect: java.io.IOException: End of IO Stream Read 
     at com.jcraft.jsch.Session.connect(Session.java:558) 
     at com.jcraft.jsch.Session.connect(Session.java:183) 
     at my.test.DownloadSFTP.main(DownloadSFTP.java:37) 
Caused by: java.io.IOException: End of IO Stream Read 
     at com.jcraft.jsch.IO.getByte(IO.java:84) 
     at com.jcraft.jsch.Session.read(Session.java:918) 
     at com.jcraft.jsch.Session.connect(Session.java:323) 

Ich habe auch eine sehr alte Jsch.jar (2011-10-06), in der Download-Aufgabe gut funktioniert, ist dies ein Protokoll. Ein Grund, warum ich upgraden wollte, ist die sehr langsame Übertragung von Dateien. Neue Veröffentlichung sollte die Dinge besser machen, die ich gelesen habe.

INFO : Connecting to 11.22.33.44 port 22 
INFO : Connection established 
INFO : Remote version string: SSH-2.0-OpenSSH_6.6.1 
INFO : Local version string: SSH-2.0-JSCH-0.1.44 
INFO : CheckCiphers: aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-ctr,arcfour,arcfour128,arcfour256 
INFO : aes256-ctr is not available. 
INFO : aes192-ctr is not available. 
INFO : aes256-cbc is not available. 
INFO : aes192-cbc is not available. 
INFO : arcfour256 is not available. 
INFO : SSH_MSG_KEXINIT sent 
INFO : SSH_MSG_KEXINIT received 
INFO : kex: server->client aes128-ctr hmac-md5 none 
INFO : kex: client->server aes128-ctr hmac-md5 none 
INFO : SSH_MSG_KEXDH_INIT sent 
INFO : expecting SSH_MSG_KEXDH_REPLY 
INFO : ssh_rsa_verify: signature true 
WARN : Permanently added '11.22.33.44' (RSA) to the list of known hosts. 
INFO : SSH_MSG_NEWKEYS sent 
INFO : SSH_MSG_NEWKEYS received 
INFO : SSH_MSG_SERVICE_REQUEST sent 
INFO : SSH_MSG_SERVICE_ACCEPT received 
INFO : Authentications that can continue: publickey,keyboard-interactive,password 
INFO : Next authentication method: publickey 
INFO : Authentications that can continue: keyboard-interactive,password 
INFO : Next authentication method: keyboard-interactive 
INFO : Authentication succeeded (keyboard-interactive). 
INFO : Disconnecting from 11.22.33.44 port 22 
INFO : Caught an exception, leaving main loop due to socket closed 

EDIT hatte ich eine Idee Veröffentlichungen in einem Maven repository zu Backstep und es ist eigentlich diese sehr neue Version nicht richtig funktioniert. Vorherige Version von jsch-0.1.52.jar funktioniert einwandfrei. Ich versuche, Bibliotheksentwickler zu kontaktieren.

Dies ist ein Protokoll aus einer funktionierenden Version 0.1.52.

INFO : Connecting to 11.22.33.44 port 22 
INFO : Connection established 
INFO : Remote version string: SSH-2.0-OpenSSH_6.6.1 
INFO : Local version string: SSH-2.0-JSCH-0.1.52 
INFO : CheckCiphers: aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-ctr,arcfour,arcfour128,arcfour256 
INFO : aes256-ctr is not available. 
INFO : aes192-ctr is not available. 
INFO : aes256-cbc is not available. 
INFO : aes192-cbc is not available. 
INFO : CheckKexes: diffie-hellman-group14-sha1,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521 
INFO : diffie-hellman-group14-sha1 is not available. 
INFO : ecdh-sha2-nistp256 is not available. 
INFO : ecdh-sha2-nistp384 is not available. 
INFO : ecdh-sha2-nistp521 is not available. 
INFO : CheckSignatures: ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521 
INFO : ecdsa-sha2-nistp256 is not available. 
INFO : ecdsa-sha2-nistp384 is not available. 
INFO : ecdsa-sha2-nistp521 is not available. 
INFO : SSH_MSG_KEXINIT sent 
INFO : SSH_MSG_KEXINIT received 
INFO : kex: server: [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 
INFO : kex: server: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ssh-ed25519 
INFO : kex: server: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,[email protected],[email protected],[email protected],aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected] 
INFO : kex: server: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,[email protected],[email protected],[email protected],aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected] 
INFO : kex: server: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-md5,hmac-sha1,[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 
INFO : kex: server: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-md5,hmac-sha1,[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 
INFO : kex: server: none,[email protected] 
INFO : kex: server: none,[email protected] 
INFO : kex: server: 
INFO : kex: server: 
INFO : kex: client: diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256 
INFO : kex: client: ssh-rsa,ssh-dss 
INFO : kex: client: aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc 
INFO : kex: client: aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc 
INFO : kex: client: hmac-md5,hmac-sha1,hmac-sha2-256,hmac-sha1-96,hmac-md5-96 
INFO : kex: client: hmac-md5,hmac-sha1,hmac-sha2-256,hmac-sha1-96,hmac-md5-96 
INFO : kex: client: none 
INFO : kex: client: none 
INFO : kex: client: 
INFO : kex: client: 
INFO : kex: server->client aes128-ctr hmac-md5 none 
INFO : kex: client->server aes128-ctr hmac-md5 none 
INFO : SSH_MSG_KEXDH_INIT sent 
INFO : expecting SSH_MSG_KEXDH_REPLY 
INFO : ssh_rsa_verify: signature true 
WARN : Permanently added '11.22.33.44' (RSA) to the list of known hosts. 
INFO : SSH_MSG_NEWKEYS sent 
INFO : SSH_MSG_NEWKEYS received 
INFO : SSH_MSG_SERVICE_REQUEST sent 
INFO : SSH_MSG_SERVICE_ACCEPT received 
INFO : Authentications that can continue: publickey,keyboard-interactive,password 
INFO : Next authentication method: publickey 
INFO : Authentications that can continue: keyboard-interactive,password 
INFO : Next authentication method: keyboard-interactive 
INFO : Authentication succeeded (keyboard-interactive). 
+0

Sie sind wahrscheinlich vom Server getrennt zu werden. Was sagt das Serverprotokoll? –

+0

Gute Punkte, hinzugefügt 0.1.52 Protokoll, neue (fehlerhafte) Version ist 0.1.53.jar Datei. Log Dump druckt am Anfang eine Bibliotheksversion. – Whome

+0

Verwenden Sie nicht 'StrictHostKeyChecking = no', Sie verlieren damit Schutz vor MITM-Angriffen. –

Antwort

8

Die JSch 0.1.53 Stützen (und bevorzugt) die diffie-hellman-group-exchange-sha256 KEX, was der Server zu unterstützen behauptet, so dass der JSch es zu benutzen versucht.

Aus irgendeinem Grund trennt der Server Sie anschließend.

Um das zu umgehen, den JSch zwingen, die diffie-hellman-group1-sha1 KEX zu verwenden, was die JSch 0.1.52 vorzieht:

session.setConfig("kex", "diffie-hellman-group1-sha1"); 
+0

Das hat den Trick und auch ich kann 0,53 viel schneller herunterladen Dateien als eine alte 0.44-Bibliothek bestätigen. – Whome

+0

Gibt es sowieso diesen "kex" -Wert, wenn JSch im Zusammenhang mit JetBrains PyCharm IDE verwendet wird? Ich stoße auf das gleiche Problem, glaube ich, aber nur mit bestimmten CentOS 7 Servern und nicht anderen und ich möchte diese Problemumgehung wenn möglich testen. –

+0

@MarkEdington Wenn Sie eine weitere Frage haben, fragen Sie sie. Dies ist eine Q & A-Site, kein Diskussionsforum. –

4

I Ich habe gerade die jsch Version 0.1.54 ein gleiches Problem hatte und wurde gelöst

Fügen Sie diese auf Ihre pom.xml

<dependency> 
    <groupId>com.jcraft</groupId> 
    <artifactId>jsch</artifactId> 
    <version>0.1.54</version> 
</dependency> 
+0

Ich habe das gleiche Problem mit der Version 0.1.54 ("Ende des IO Stream Read") –

+0

überprüfen mit höherer Version. @sharathchandra –