linux创建sftp账号

提供sftp服务的有vsftpd和internal-sftp,这里用的是系统自带的internal-sftp,操作步骤如下:

1.创建用户YSsftp,禁止ssh登录
useradd -s /sbin/nologin YSsftp
2.设置用户密码

passwd YSsftp

3.创建用户的根目录

mkdir /home/sftpFile

4.设置权限

设置目录权限,目录的权限设定有两个要点:
目录开始一直往上到系统根目录为止的目录拥有者都只能是root
目录开始一直往上到系统根目录为止都不可以具有群组写入权限

chown root:root /home/sftpFile
chmod 755 /home/sftpFile

5.配置sshd_config

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

6.重启sshd服务

service sshd restart

7.用户登录后进入的是/home/sftpFile即用户根目录,根目录是无法写入的,所以先用root在/home/sftpFile新建一个UPfile目录

mkdir /home/sftpFile/UPfile

8.修改目录所有者和权限

chown UPfile:UPfile/home/sftpFile/UPfile
chmod 777 /home/sftpFile/UPfile

测试登录

sftp -oPort=22 sftpFile@host

常见文件修复
1.Directive ‘AddressFamily’ is not allowed within a Match block
这里写图片描述
将这段文字放在配置文件前面

扫描二维码关注公众号,回复: 1786893 查看本文章
    2.
Write failed: Broken pipe     
Couldn't read packet: Connection reset by peer
这个问题的原因是ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755

猜你喜欢

转载自blog.csdn.net/helloloser/article/details/79399575
今日推荐