IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

sftp配置chroot

昔我往矣 2015-01-17 00:10:17 累计浏览 2,234 次
本机暂存

   有时候搭建一个FTP是很麻烦的事情,还有权限管理和用户配置等,在要求不高的情况下Linux自带的sftp可以更好更方便的完成ftp的工作。另外,FTP密码是明文传输的,存在一定的安全隐患,而使用ssh协议22号端口的sftp就没有这个问题!

   环境:

   系统:CentOS 6.5

   ssh版本:OpenSSH_5.3p1

   sftp配置和chroot

   sftp的chroot功能需要ssh的版本高于4.8p1,如果版本不到,需要先升级ssh版本。

   正常的ssh用户可以使用sftp,但是他们可以访问整个系统,而chroot的功能就是把sftp用户限制在用户的家目录里,对sftp登陆的用户来说,家目录就是根目录!

   1 配置sshd_config

   打开/etc/ssh/sshd_config,注释掉如下行:

Subsystem   sftp    /usr/libexec/openssh/sftp-server

   对用户组来说,添加如下行:

Subsystem       sftp    internal-sftp  
 Match Group sftpusers
   ChrootDirectory /home/%u
   ForceCommand internal-sftp
   AllowTcpForwarding no
   X11Forwarding no

   意思是所有sftpusers组里面的用户都启用sftp。

   对单个用户来说,添加如下几行:

Subsystem       sftp    internal-sftp  
Match User sftpuser
ChrootDirectory /home/%u
ForceCommand internal-sftp

   意思是对sftpuser用户启用!以上两种方式选一个即可,建议按组匹配!修改完成,重载sshd服务配置文件

service sshd reload

   2 建立用户组和用户

groupadd sftpusers
useradd -g sftpusers -s /sbin/nologin -d /home/user1 user1
chown root:sftpusers /home/user1
chmod 755 /home/user1
passwd user1

   3 权限注意

  • chroot的目录所属用户必须是root,权限是755,本例中是/home/user1,由于user1和user1所属的组sftpusers都对/home/user1没有写权限,所以需要root用户在/home/user1目录下建立子目录,并对user1用户赋予权限,这样user1就能登陆服务器并进行写操作了!

  • 由于强制使用sftp,所以是不能使用ssh登陆系统的

  • 同样可以使用公私钥认证的方法实现免密码登陆sftp

  •    4 客户端

$ sftp nuoan@192.168.1.1 
Connected to 192.168.1.1.
sftp> 

   参考链接

   https://wiki.archlinux.org/index.php/SFTP_chroot

同分类推荐文章

  1. 从零重建 macOS 开发机:可复现的环境初始化流程 (2026-06-14 20:36:00)
  2. 百度物理网络监控工具开源第二弹:毫秒级监控工具 baize,让你的网络问题无处遁形 (2026-06-11 08:10:28)
  3. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)

查看更多 DevOps 文章 →

建议继续学习

  1. Linux如何统计进程的CPU利用率 (累计阅读 16,307)
  2. 我的 RHCA 之路 (累计阅读 14,011)
  3. Linux内存点滴 用户进程内存空间 (累计阅读 13,228)
  4. 给程序员新手的一些建议 (累计阅读 13,087)
  5. Linux 性能监控、测试、优化工具 (累计阅读 13,010)
  6. 关于linux内存free的一些事情 (累计阅读 12,866)
  7. 高效Linux用户需要了解的命令行技能 (累计阅读 12,823)
  8. ps - 按进程消耗内存多少排序 (累计阅读 12,685)
  9. Google怎么用linux (累计阅读 12,580)
  10. Linux Used内存到底哪里去了? (累计阅读 11,866)