最新消息:自律使人变得更强大

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

admin 656 次 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,您需要填写昵称和邮箱!

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