技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 系统运维 --> sftp配置chroot

sftp配置chroot

浏览:1576次  出处信息

   有时候搭建一个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. 在ssh服务里使用chroot    (阅读:4865)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
后一篇:调试工具之GDB >>
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1