在使用Jsch连接服务器的过程中,时常遇到 Auth fail 这个问题,表面的意思就是验证失败,经过搜索和实验,出现这个情况的原因可能是以下2条:
1.你所使用的用户不能进行远程登录,比如CentOS6,默认root不能进行远程登录
2.服务器的配置文件 /etc/ssh/sshd_config 中 GSSAPIAuthentication 的值是 yes
针对以上这2条原因,可以尝试用如下方法来解决:
1.在 /etc/ssh/sshd_config 文件中,PermitRootLogin yes 把这行的注释取消掉,也就是允许root远程登录
2.在 /etc/ssh/sshd_config 中 GSSAPIAuthentication 修改为 no, 或者在代码中增加
session.setConfig("userauth.gssapi-with-mic", "no"),同时不要忘了 session.setConfig("StrictHostKeyChecking", "no");
3.为了加快SSH的登录速度,可以把 /etc/ssh/sshd_config 文件中 UseDNS yes 修改为 no
4.之后重启sshd服务,再次访问速度就会有明显的提升.
转载至:http://www.linux178.com/Java/jschauthfail.html