愿你出走半生,归来仍是少年

Kratos
专注于用户阅读体验的响应式博客主题
  1. 首页
  2. 运维知识
  3. 正文

[最佳实践]配置sshd只允许sftp登录

2021年12月22日 3170点热度 0人点赞 0条评论

sftp 是 Secure File Transfer Protocol 的缩写,即安全文件传送协议,可为传输文件提供一种安全的加密方法。
sftp 为 SSH 的一部分,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的 FTP 要低,如果对网络安全性要求高,可使用 SFTP 代替 FTP。
因为安全需要,有时需要配置sshd以使得只允许sftp登录,而同时不允许ssh直接登录。
以下操作步骤在CentOS 7.6实际测试通过,可放心参考使用。

Table of Contents

Toggle
  • ■ 添加用户组sftpgroup
  • ■ 添加用户sftpuser
  • ■ 修改用户密码
  • ■ 配置sshd_config文件
  • ■ 设置正确的目录权限
  • ■ 重启sshd服务
  • ■ 此时可以sftp登录
    • 作者后注:

■ 添加用户组sftpgroup

groupadd sftpgroup

■ 添加用户sftpuser

useradd -g sftpgroup -d /home/sftp -s /sbin/nologin sftpuser
-s 指定不允许ssh登陆

■ 修改用户密码

passwd sftpuser

■ 配置sshd_config文件

vim /etc/ssh/sshd_config
增加或修改如下配置:

Subsystem sftp internal-sftp
Match Group sftpgroup
        ChrootDirectory /home/sftp
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp

Match Group sftpgroup 指定以下的子行配置是匹配 sftpgroup 用户组的。Match user userA,userB 则是匹配用户
ChrootDirectory /data/sftp/%u 设定用户访问的根文件夹。%h 代表用户 home 目录,%u 代表用户名
ForceCommand internal-sftp 该行强制执行内部 sftp,并忽略任何 ~/.ssh/rc 文件中的命令
AllowTcpForwarding no 是否允许 TCP 转发,默认值为 "yes"
X11Forwarding no 是否允许进行 X11 转发,默认值是 "no"

■ 设置正确的目录权限

要实现 Chroot 功能,目录权限设置非常重要,否则无法登录,给出的错误提示也很奇怪,难以排查、修正,导致踩坑半天,浪费很多时间!
以下为最佳设置实践,务必以此为准!

chown root:sftpgroup /home/sftp
chmod 755 /home/sftp

可以看到,ChrootDirectory的目录属主必须为root,属组必须为sftpgroup,其他用户或用户组为"只读+执行"

■ 重启sshd服务

systemctl restart sshd

■ 此时可以sftp登录

[root@node1:1 /home]# sftp sftpuser@node1
sftpuser@node1's password: 
Connected to node1.
sftp> ls
sftp> 
sftp> 
sftp> pwd
Remote working directory: /

此时可以在sftp的根目录下建立指定用户的读写目录,即可正常使用sftp了,以下操作可参考。

sftp> mkdir test
Couldn't create directory: Permission denied
sftp> exit
[root@node1:1 /home]# cd /home/sftp
[root@node1:1 /home/sftp]# mkdir upload
[root@node1:1 /home/sftp]# chown -R sftpuser:sftpgroup upload
[root@node1:1 /home/sftp]# chmod -R 700 upload
[root@node1:1 /home/sftp]# ll
总用量 0
drwx------ 2 sftpuser sftpgroup 6 12月 22 10:55 upload
[root@node1:1 /home/sftp]# sftp sftpuser@node1               
sftpuser@node1's password: 
Connected to node1.
sftp> pwd
Remote working directory: /
sftp> cd upload
sftp> mkdir test
sftp> ls
test  

作者后注:

网上搜到好几个类似的文章,都不能直接参考使用,再次验证了网文水平的参差不齐,真是让人头疼,浪费大家的时间。所以建议大家发出来的网文,一定要保证是确实可参考使用的,否则只会让人瞧不起 :)

标签: 暂无
最后更新:2021年12月22日

liking

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

归档

  • 2026 年 6 月
  • 2026 年 3 月
  • 2026 年 2 月
  • 2025 年 12 月
  • 2025 年 11 月
  • 2025 年 4 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 10 月
  • 2024 年 7 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2023 年 11 月
  • 2023 年 10 月
  • 2023 年 8 月
  • 2023 年 7 月
  • 2023 年 5 月
  • 2023 年 3 月
  • 2023 年 2 月
  • 2022 年 12 月
  • 2022 年 11 月
  • 2022 年 10 月
  • 2022 年 9 月
  • 2022 年 8 月
  • 2022 年 6 月
  • 2022 年 5 月
  • 2022 年 3 月
  • 2022 年 2 月
  • 2022 年 1 月
  • 2021 年 12 月
  • 2021 年 11 月
  • 2021 年 10 月
  • 2021 年 8 月
  • 2021 年 7 月
  • 2021 年 6 月
  • 2021 年 5 月
  • 2021 年 4 月
  • 2021 年 3 月
  • 2021 年 2 月
  • 2021 年 1 月
  • 2020 年 12 月
  • 2020 年 11 月
  • 2020 年 10 月
  • 2020 年 9 月
  • 2020 年 8 月
  • 2020 年 7 月
  • 2020 年 6 月
  • 2020 年 5 月
  • 2020 年 3 月
  • 2020 年 2 月
  • 2019 年 12 月
  • 2019 年 11 月
  • 2019 年 10 月
  • 2019 年 9 月
  • 2019 年 8 月
  • 2019 年 7 月
  • 2019 年 6 月
  • 2019 年 5 月
  • 2019 年 4 月
  • 2019 年 2 月
  • 2018 年 12 月
  • 2018 年 11 月
  • 2018 年 8 月
  • 2018 年 7 月
  • 2018 年 6 月
  • 2018 年 5 月
  • 2018 年 4 月
  • 2018 年 3 月
  • 2018 年 2 月
  • 2018 年 1 月
  • 2017 年 12 月
  • 2017 年 11 月
  • 2017 年 8 月
  • 2017 年 6 月
  • 2017 年 5 月
  • 2017 年 3 月
  • 2016 年 9 月
  • 2016 年 8 月
  • 2016 年 7 月
  • 2016 年 6 月
  • 2016 年 5 月
  • 2015 年 10 月
  • 2014 年 10 月
  • 2014 年 8 月
  • 2014 年 3 月
  • 2013 年 12 月
  • 2013 年 8 月
  • 2013 年 7 月
  • 2013 年 6 月
  • 2013 年 4 月
  • 2012 年 11 月
  • 2012 年 7 月
  • 2012 年 6 月
  • 2012 年 5 月
  • 2012 年 2 月
  • 2011 年 10 月
  • 2011 年 8 月
  • 2011 年 3 月
  • 2010 年 11 月
  • 2010 年 10 月
  • 2010 年 9 月
  • 2010 年 8 月
  • 2010 年 7 月
  • 2010 年 5 月
  • 2010 年 4 月
  • 2010 年 1 月
  • 2009 年 11 月
  • 2009 年 8 月
  • 2009 年 5 月
  • 2009 年 3 月
  • 2009 年 2 月
  • 2008 年 11 月
  • 2008 年 10 月
  • 2008 年 8 月
  • 2008 年 4 月
  • 2007 年 4 月

分类

  • BigData
  • kubernetes
  • linux
  • MongoDB
  • MySQL
  • Oracle
  • PostgreSQL
  • 备份恢复
  • 安装配置
  • 性能优化
  • 技术杂谈
  • 未分类
  • 梦回红楼
  • 测试
  • 生活点滴
  • 网站建设
  • 自制工具
  • 轻松一刻
  • 运维知识
  • 问题处理

COPYRIGHT © 2026 愿你出走半生,归来仍是少年. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang