Centos或者RedHat创建SFTP上传账号

/ 0评 / 0

Centos或者RedHat创建SFTP上传账号

1.创建sftp用户组

groupadd sftp

2.创建用户并限制用户登录SSH

useradd -g sftp -s /bin/false hnsftp

3.设置用户密码

passwd hnsftp

4.创建用户上传目录,并且修改成用户的home目录,修改目录权限

sftp上传文件夹

mkdir -p /u03/sftp_file

创建hnsftp用户独立的文件夹

mkdir /u03/sftp_file/hnsftp

修改用户home 目录

usermod -d /u03/sftp_file/hnsftp hnsftp

修改用户home目录权限

chown -R hnsftp:sftp /u03/sftp_file/hnsftp

5.设置 sshd_config

vi /etc/ssh/sshd_config

5.1 找到Subsystem sftp /user/libexec/openssh/sftp-server 前面加#注释掉
#注释掉这行
#Subsystem      sftp    /usr/libexec/openssh/sftp-server
5.2 添加在配置文件末尾
#添加在配置文件末尾
Subsystem sftp internal-sftp #指定使用sftp服务使用系统自带的internal-sftp
Match user hnsftp #匹配用户,如果要匹配多个组,多个组之间用逗号分割
ForceCommand internal-sftp #指定sftp命令
ChrootDirectory /u03/sftp_file #用chroot将指定用户的根目录,chroot的含义
#下面这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
X11Forwarding no                
AllowTcpForwarding no

6.重启sshd服务

service sshd restart

7.遇到问题

1.Write failed: Broken pipe Couldn't read packet: Connection reset by peer 的错误(sftp连不是上或者马上断掉的问题)

解决:

这个问题的原因是ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注