不走弯路,在CentOS 7 下搭建SFTP服务器
- 在搭建之前先说一下可能用到的一些命令
: groupadd groupName(新增用户组)
: groupdel groupName(删除用户组)
: useradd -g group Name userName(修改用户主组)
: useradd -G groupName userName(修改用户附属组)
: gpasswd -d userName groupName(移除用户附属组)
- 添加用户组用于连接SFTP (补充:创建用户时Linux默认会为用户创建一个组,组名与用户名相同,所以如果是单个用户,不创建组使用用户名组也可以)
: groupadd sftp
- 添加sftp组下的用户
: useradd -d /home/sftpuser -g sftp -s /bin/bash sftpuser
: passwd sftpuser
- 修改ssh的配置文件,经过我不断的调试发现,我此处的方式和网上大部分的方式相反,如果报错的时候记得修改一下这里尝试一下。使用网上的配置,无法拦截sftp组以外的用户登录。
: vi /etc/ssh/sshd.config
#这是我的
Subsystem sftp /usr/libexec/openssh/sftp-server
#Subsystem sftp internal-sftp
Match Group sftpuser
ChrootDirectory /opt/ftp/
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
#这是网上的
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match Group sftpuser
ChrootDirectory /opt/ftp/
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
- 编辑linux内部安全认证
: vi /etc/selinux/config
#把SELINUX的值改为disabled
SELINUX=disabled
- 易错点,在配置文件/etc/ssh/sshd.config中Chrootdirectory对应的目录路径上的所有文件的属主都必须是root,属组为Match匹配的Group,且权限不能超过755,否则用户在登录时认证无法通过。
: chown -R root:sftp /opt/ftp
: chmod -R 755 /opt/ftp
- 在ftp目录下建一个文件夹供用户进行上传操作
: cd /opt/ftp
: mkdir upload
: chown -R sftpuser:sftp /opt/ftp/upload
: chmod -R 755 /opt/ftp/upload
- 此时已经配置完成,启动sshd服务
: systemctl start sshd.service