1.查看SSH版本,openssh版本必须大于4.8p1
ssh -V
2.创建用户组
groupadd sftp-users
3.在sftp-users用户组下创建admin,admin不用于登录系统(/sbin/nologin为禁止登录shell的用户)。
useradd -g sftp-users -s /sbin/nologin -M admin
passwd admin
4.创建sftp主目录,并指定给admin
cd /
mkdir -p sftp/main usermod -d /sftp/main admin
5.设置主目录权限,只能给root,并设定755或750
chown root:root /sftp/main
chmod 755 /sftp/main
6.编辑sftp配置文件
vim /etc/ssh/sshd_config
用"#"注掉Subsystem sftp /usr/libexec/openssh/sftp-server 一行
#Subsystem sftp /usr/libexec/openssh/sftp-server
并在最后增加
Subsystem sftp internal-sftp ##指定使用sftp服务使用系统自带的internal-sftp Match Group sftp-users ##匹配sftp-users组的用户,如果要匹配多个组,多个组之间用逗号分割 ChrootDirectory /sftp/main/ ##sftp主目录指定到/sftp/main/ ForceCommand internal-sftp ##指定sftp命令 AllowTcpForwarding no ##用户不能使用端口转发 X11Forwarding no ##用户不能使用端口转发
PermitRootLogin yes(防止后续root不可登陆系统,注意文件中参数是不是已存在)
7.如果SELINUX是开启状态,将文件中的SELINUX=enforcing 修改为 SELINUX=disabled ,然后保存。
vim /etc/selinux/config
8.创建用户xiaojin,并创建专属目录,并授权。
cd /sftp/main mkdir xiaojinFTP useradd -g sftp-users -s /sbin/nologin xiaojin passwd xiaojin
usermod -d /sftp/main/xiaojinFTP xiaojin chown xiaojin:sftp-users /sftp/main/xiaojinFTP chmod 777 /sftp/main/xiaojinFTP
9.重启
service sshd restart
10.测试
sftp xiaojin@127.0.0.1
quit