配置用户只能通过sftp访问服务端资源
1.新增用户,为了限制用户的登录方式,指定登录shell为/sbin/nologin,主目录为/data/test
useradd -s /sbin/shell -d /data/test test
建成后如下图示
2.修改用户密码
passwd test
输入密码回车即可。
3.更改用户主目录的所有者为root
chown root:root test
4.修改主目录访问权限为755
chmod 755 test
前面几步操作不正确时,通过sftp登录时会报如下错误:
Aug 24 16:32:28 FileServer sshd[28556]: User test not allowed because account is locked
Aug24 16:32:30 FileServer sshd[28556]: error: Could not get shadow information forNOUSER
Aug24 16:32:30 FileServer sshd[28556]: Failed password forinvalid user test from [ip] port [port] ssh2
或者是
Accepted password for 800002100010007 from 172.16.54.95 port 3145ssh2
Aug24 15:03:25 FileServer sshd[28171]: fatal: bad ownership or modes for chroot directory "/data/test"
以上错误日志记录在/var/log/messages文件中
如果使用winscp访问的话会提示拒绝访问或验证失败
5.限制用户通过sftp登录进来时只能进入主目录,修改/etc/ssh/sshd_config文件
vi /etc/ssh/sshd_config
注释掉#Subsystem sftp /usr/libexec/sftp-server
选择Subsystem sftp internal-sftp
# override default of no subsystems
#Subsystem sftp/usr/libexec/sftp-server
Subsystem sftp internal-sftp
在Match处输入目标用户信息
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# ForceCommand cvs server
# test user
Match User test
ChrootDirectory/data/test
ForceCommand internal-sftp
修改完成后保存退出
6.测试sshd_config文件是否正确
sshd -T
7.重启sshd
service sshd restart
启动完成如下图:
配置完成。