- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们目前正在使用一个云产品,该产品在内部使用 JSCH 连接到外部 sftp 源。我正在调查尝试连接到 azure sftp 时遇到的连接重置异常。
使用wireshark,我确定问题是在我们发送客户端: key 交换初始化后发生的。与 filezilla 建立相同的连接就没有这个问题。
比较 jsch 和 filezilla 的软件包,我没有发现明显的问题,但我不是 ssh 协议(protocol)的专家。我将在下面发布这两个请求,如果有人能给我任何指示,我将不胜感激。
Request with JSCH (not working)
Request with Filezilla (working)
Response with Filezilla (working)
查看下面的日志输出:
INFO: Connecting to ***** port 22
INFO: Connection established
INFO: Remote version string: SSH-2.0-AzureSSH_1.0.0
INFO: Local version string: SSH-2.0-JSCH-0.1.54
INFO: CheckCiphers: aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-ctr,arcfour,arcfour128,arcfour256
INFO: CheckKexes: diffie-hellman-group14-sha1,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521
INFO: CheckSignatures: ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521
INFO: SSH_MSG_KEXINIT sent
INFO: Disconnecting from **** port 22
com.jcraft.jsch.JSchException: Session.connect: java.net.SocketException: Connection reset
编辑:按照詹姆斯的建议,我得到了相同的结果,连接关闭,但客户端请求仅将支持的算法作为有效负载。因此,我尝试通过设置 jsch 配置来复制 FileZilla 请求,无论 jsch 是否实际上支持该算法,我只是想看看是否有任何响应。
但由于某种原因连接仍然被终止
最佳答案
感谢最新评论(来自 JGiltner62-0227,于 2022 年 2 月 18 日)https://learn.microsoft.com/en-us/answers/questions/713024/connection-to-azure-sftp-doesnt-work-using-jsch.html我现在有一个有效的 JSCH 实现。源代码中有两处需要更改,都在 Session.java 中。
私有(private)字节[] V_C=Util.str2byte("SSH-2.0-JSCH-"+JSch.VERSION);//客户端版本
需要更改为:
私有(private)字节[] V_C=Util.str2byte("SSH-2.0-JSCH_"+JSch.VERSION);//客户端版本
(区别在于“JSCH”后面是下划线而不是破折号)。
byte[] foo=new byte[V_C.length+1];
System.arraycopy(V_C, 0, foo, 0, V_C.length);
foo[foo.length-1]=(byte)'\n';
需要更改为
byte[] foo=new byte[V_C.length+2];
System.arraycopy(V_C, 0, foo, 0, V_C.length);
foo[foo.length-2]=(byte)0x0D;
foo[foo.length-1]=(byte)'\n';
(变量'foo'需要是V_C.length + 2而不是+1,然后我们插入0x0D作为倒数第二个字节。)
进行这两项更改后,我确认该库可以上传到 Azure SFTP。
关于java - 使用 jsch 连接到 azure 中托管的 sftp 服务器时连接重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70878675/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!