com.jcraft.jsch.JSchException:Auth fail 问题解决

背景:使用sftp服务上传和下载文件时出现这个错误提示,导致无法正常去加载文件,网上找了一大圈也没找到这个问题解决方案。这个异常是sftp服务出了问题,我的解决方法是,删除原来创建的用户,然后重新创建同名用户,然后再吧原来的数据指定给新创建的用户,最后这个问题就解决了。

#如果已有用户,清除掉
userdel sftp1
rm -rf /home/sftp1
rm -rf /var/spool/mail/sftp1
 
#新建sftp组、具体用户sftp1
groupadd sftp
adduser sftp1
useradd -G sftp -s /sbin/nologin sftp1
passwd 123456@sftp1
 
 
 
#修改ssh配置文件
vi /etc/ssh/sshd_config
 
找到如下这行,用#符号注释掉。
#Subsystem sftp /usr/libexec/openssh/sftp-server
 
Subsystem sftp internal-sftp
UsePAM yes
 
#用chroot将用户的根目录指定到%h,%h代表用户home目录,这样用户 就只能在用户目录下活动。也可用%u,%u代表用户名
ChrootDirectory /data/sftp/%u
ForceCommand    internal-sftp
AllowTcpForwarding no
X11Forwarding no
 
#设定Chroot目录权限(必须),用户目录以及组目录以及数据根目录都要设置为755 权限,不要太高,否则可能报Permission denied的异常
 
mkdir -p /data/sftp/sftp1
chown root:root /data/sftp/sftp1
chmod 755 /data -R
 
#建立SFTP用户登入后可写入的目录upload
mkdir /data/sftp/sftp1/upload
chown sftp1  /data/sftp/sftp1/upload
#给upload以及下级文件授权777,否则可能报Permission denied的异常
chmod 777 /data/sftp/sftp1/upload -R 
 
#重启ssh
service sshd restart
 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "com.jcraft.jsch.JSchException: auth fail" 是一个 Java 异常信息,它表示 SSH 认证失败。这通常是由于用户提供的凭据(用户名和密码或密钥)不正确或无法验证所致。如果您在使用 Java SSH 库时遇到此异常,您需要检查您提供的凭据是否正确,并确保您可以使用这些凭据登录到远程主机。 ### 回答2: com.jcraft.jsch.jschexception: auth failSSH连接时经常遇到的一个错误信息。这个错误通常是由于身份验证失败导致的,可能是用户名或密码错误,也可能是密钥问题,或者是SSH服务未正确配置。 首先,您应该确认您输入的用户名和密码是否正确。如果用户名或密码不正确,您将无法通过身份验证。 其次,如果您使用的是密钥身份验证,则应确保已正确设置SSH密钥。这包括公钥和私钥。公钥需要添加到SSH服务器上的~/.ssh/authorized_keys文件中,私钥则需要在您的本地计算机上正确配置。如果SSH密钥已正确设置,但仍然收到“auth fail”错误,可以尝试删除已保存的密钥并重建它们。 最后,如果上述步骤都无法解决问题,则可能是SSH服务器未正确配置。您可以检查服务器是否已允许身份验证,并且您使用的身份验证方法是否与服务器匹配。 总之,com.jcraft.jsch.jschexception: auth fail错误通常是身份验证失败,需要通过检查用户名和密码、SSH密钥和SSH服务器配置来解决它。 ### 回答3: com.jcraft.jsch.jschexception: auth fail是一种常见的JSch异常,通常发生在SSH认证失败时。JSch是一个Java库,用于在Java程序中实现SSH连接,它提供了一些方法用于连接、断开、上传、下载文件、执行命令等。JSch库安装好后,就可以使用它提供的方法来完成SSH连接。在SSH连接时,可能会出现各种各样的问题,其中com.jcraft.jsch.jschexception: auth fail就是比较常见的一种。当SSH认证失败时,系统就会抛出这个异常。 出现com.jcraft.jsch.jschexception: auth fail的原因有很多。有可能是用户名或密码错误,也有可能是SSH密钥不正确,还有可能是SSH服务器的配置有误等等。解决这个问题的方法也有很多,下面介绍一些常用的方法: 1.检查用户名和密码:首先,要确保用户名和密码是正确的,因为这是最常见的原因之一。检查用户名和密码是否正确并再次尝试连接,这样可能会解决问题。 2.检查SSH密钥:如果您正在使用SSH密钥进行认证,则必须确保密钥已正确配置。您可以使用以下命令来检查密钥是否正确配置: ssh -i /path/to/key user@host 如果使用上述命令连接成功,则说明密钥配置正确,并且问题可能出在代码中。 3.检查服务器配置:如果服务器配置不正确,则无论您输入的用户名和密码是否正确,都会出现认证失败的情况。确保您使用的服务器配置是正确的,并且您可以使用其他工具(如PuTTY或SSH客户端)连接到服务器进行验证。 4.使用调试模式:可以将JSch配置为在调试模式下运行,这将输出有关连接尝试的更多信息,可能有助于找到问题所在。 总之,com.jcraft.jsch.jschexception: auth fail这个异常的确很让人头疼,但不要放弃,根据具体情况逐一排查问题,相信总会找到解决办法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值