背景:使用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
 

Logo

鸿蒙生态一站式服务平台。

更多推荐