最新消息:世上无难事,只要肯放弃。

结合openssh实现将sftp用户锁定在自己的家目录里

admin 314 次 0 条

运维学习日常笔记-结合openssh实现将sftp用户锁定在自己的家目录里
1、添加sftp组
groupadd sftp
2、创建sftp目录
mkdir /home/sftp
3、创建sftp用户目录,这里为test
mkdir /home/sftp/test
4、创建test用户
useradd -M -d /home/sftp/test -g sftp test
5、为test生成key
su test
ssh-keygen -t rsa
mkdir .ssh chmod 700 .ssh chgrp test:sftp .ssh
cd .ssh/
cat id_rsa.pub >> authorized_keys

6、修改目录权限
chown root:sftp test

目录权限设置上要遵循2点:
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主必须是root;
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,权限最大设置只能是755。
[root@ef-application-test sftp]# ll -d /home/sftp
drwxr-xr-x 3 root root 4096 Jun 25 09:10 /home/sftp

cd /home/sftp
chgrp sftp test/
ll /home/sftp/
total 4
drwxr-xr-x 4 root sftp 4096 Jun 25 09:43 test

修改sshd_config配置文件,在最后添加如下部分,把原来
Subsystem sftp /usr/libexec/openssh/sftp-server
部分注释掉

cat /etc/ssh/sshd_config
Subsystem sftp internal-sftp -l INFO -f AUTH

add Below lines at the end of file

Port 10022
Match Group sftp
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h

ChrootDirectory /home/sftp/%u

ForceCommand internal-sftp

ForceCommand internal-sftp -l INFO -f AUTH

这里是匹配的组,当然也可以根据设定具体的用户,如:

Port 10022
Match User test
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h

ChrootDirectory /home/sftp/%u

ForceCommand internal-sftp

ForceCommand internal-sftp -l INFO -f AUTH

7、重启sshd服务
service sshd restart
centos7 或者redhat7命令为
systemctl restart sshd

与本文相关的文章

发表我的评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址