自己的APP应用服务器一直在与对方的服务器进行文件传输,通常用ssh2_connect进行连接。 如果发现这几天突然无法连接,知道对方服务器的OpenSSH版本从8.0pl升级到8.2pl,请考虑这是不应该的。 版本升级不大,没有任何影响。 问题的可疑之处是http://ww.Sina。
故障服务器的OpenSSH版本从8.0pl升级到8.2pl,php的ssh2_connect方法连接失败。 ssh2_connect的返回值为true|false,没有其他返回信息,因此接下来是一个难题的疑难解答
问题定位1 .寻找自己的原因,自己的连接方式有问题
于是开始寻找资料,改变了连接方法,进行了各种各样的修改,但问题还没有解决。 自身服务器有异常
此问题通过测试连接到其他服务器,发现连接到其他服务器是正常的,但仅连接到对方服务器就有问题。 因此,将问题定位到对象服务器2。 查找OpenSSH升级的原因,以确定对方系统的当前版本
在网上查找OpenSSH升级后可能出现的问题,并逐一进行故障诊断
可能是这个“com.j craft.jsch.jschexception : algorithmnegotiationfail”的解决方案
sftp服务器的/etc/ssh/sshd_config
添加:
kexalgorithmsdiffie-hellman-group1- sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2- nistp
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
重新启动sshd服务器:
服务固态硬盘重新启动
尝试修改对方服务器没有解决问题。 下一步
帐户权限问题可能是由于升级后帐户发生更改而出现的登录问题
解决方案
重新创建sftp帐户后再连接时,连接仍然失败
最终问题的定位在尝试了几种方法之后,问题还没有解决。 (很难。 我不想成为程序猴子。 )最后联系了java的同事,让他也用程序连接进行了测试。 我的艹,居然有臭虫的提示。
错误信息通过命令行是可以连接对方服务器的
这是因为在升级的OpenSSH之后,sshd_config没有更新。
最后更新配置并重新启动服务后,问题得到了完美解决,配置如下
echo ' ciphers ' ` ssh-qcipher|paste-d,- s `/etc/ssh/sshd _ config echo ' Macs ' ` sh-qmac|paste-d,- s
OpenSSH7.9升级
我前几天也查了其他文章,希望对你们有帮助
jsch连接到OpenSSH_8.2的服务器上发生错误
如果对这篇文章有异议,请在文章评论处写评论。
大家编程这条路,走得越远。
世界上有很多意想不到的事情。 例如,我想举个例子。