sftp配置chroot
有时候搭建一个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
建议继续学习:
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:昔我往矣 来源: 昔我往矣
- 标签: chroot sftp
- 发布时间:2015-01-17 00:10:17
- [56] Oracle MTS模式下 进程地址与会话信
- [56] IOS安全–浅谈关于IOS加固的几种方法
- [55] 如何拿下简短的域名
- [54] 图书馆的世界纪录
- [52] android 开发入门
- [52] Go Reflect 性能
- [50] 读书笔记-壹百度:百度十年千倍的29条法则
- [49] 【社会化设计】自我(self)部分――欢迎区
- [38] 程序员技术练级攻略
- [33] 视觉调整-设计师 vs. 逻辑