有一个通过代码连接sftp的方法,忽然某一天总是抛出JSchException: channel is not opened异常,
在网上查询了几个产生该异常的可能原因和解决方案,
1、原因:内存不够,解决方案:需要清理内存,结果:未解决。
(1)free -m //以M为单位查看内存大小
(2)sync
(3) echo 3 > /proc/sys/vm/drop_caches
/**
0:不释放(系统默认值)
1:释放页缓存
2:释放dentries和inodes
3:释放所有缓存
*/
2、原因:session连接数太少,解决方案:修改sshd.conf的属性,把MaxSessions 由10改为20,重启sshd,结果:未解决。
/**修改MaxSessions属性值*/
(1)vim /etc/ssh/sshd_config
/**重启ssh服务*/
(2)service sshd restart
3、原因:没有设置连接超时时间,解决方案:设置连接超时时间:ch.connect(60 * 1000); 结果:问题解决。