CentOS 7, 设置 sftp 账号
1. 检查openssh-server 是否支持 ChrootDirectory
ssh -V
版本在 4.8p1 及以上均支持,OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
2. 添加 sftp 专用用户组
groupadd sftpgroup
3. 添加 sftp 用户
useradd -s /bin/false -g sftpgroup sftpuser
添加名为 sftpuser
的账号, 设置其归属 sftpgroup
用户组,且该账号没有登录shell
的权限 通过-s /bin/false
设置。
4. 设置密码
passwd sftpuser
设置密码 Passw0rd
5. 限制sftp目录
vi /etc/ssh/sshd_config
注释 Subsystem sftp /usr/libexec/openssh/sftp-server
行并添加 Subsystem sftp internal-sftp
;
然后添加如下内容:
Match Group sftpgroup
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /gsyfjg
6. 创建 /gsyfjg 目录
sudo root
mkdir /gsyfjg
7. 重启sshd服务
service sshd restart
8. 测试账号
ssh sftpuser@192.168.1.150
无 ssh 的 shell 权限
sftp sftpuser@192.168.1.150
只能访问 /gsyfjg
目录 , 注意 /gsyfjg
的用户组必须是sftpgroup