CentOS 6配置SFTP

来源:互联网 发布:设置数据有效性 编辑:程序博客网 时间:2024/05/16 17:56

由于SFTP是SSH的一部分(与传统的FTP没有任何关系),因此,配置SFTP不需要传统的FTP服务器软件。仅需要OpenSSH服务器即可。

$ yum install openssh-server openssl $ cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak$ vim +132 /etc/ssh/sshd_config 

注释掉下面这行

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

添加如下几行

Subsystem       sftp    internal-sftpMatch Group sftp        ChrootDirectory /data/sftp/%u        ForceCommand    internal-sftp        AllowTcpForwarding no        X11Forwarding no

解释一下每一行的意思

Subsystem       sftp    internal-sftp  这行指定使用sftp服务使用系统自带的internal-sftpMatch Group sftp  匹配sftp组的用户,如果有多个组用逗号分割也可以使用“Match User mysftp”匹配用户,多个用户之间也是用逗号分割ChrootDirectory /data/ftp/%uchroot将用户的根目录指定到/data/ftp/%u,%u代表用户名,%h表示用户根目录另一种写法: ChrootDirectory %hchroot可以参考:http://www.ibm.com/developerworks/cn/linux/l-cn-chroot/ForceCommand    internal-sftp  指定sftp命令AllowTcpForwarding no  X11Forwarding no  禁止用户使用端口转发建立用户和组放
$ mkdir -p /data/sftp/$ groupadd sftp$ useradd -m -d /data/sftp/user1 -g sftp -s /sbin/nologin user1通过上面这条命令建立的用户,其家目录权限是700,需要改成755才可以正常登陆$ chmod -R 755 /data/sftp/$ chown root:sftp /data/sftp/$ chown root:sftp /data/sftp/user1    #重要

错误的目录权限设定会导致在log中出现”fatal: bad ownership or modes for chroot directory XXXXXX”的内容

目录的权限设定有两个要点:
1、由ChrootDirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root
2、由ChrootDirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限(最大权限755)

因为用了chroot,所以/data/sftp/user1属主一定要是root,并且所属组不能有写入权限,如果上传需要写入在/data/sftp/user1下建立可写属主的文件夹供上传使用。

mkdir/data/sftp/user1/upload chown -R user1:sftp /data/sftp/user1/upload

参考:
https://www.zhukun.net/archives/7641
https://blog.linuxeye.com/437.html

0 0
原创粉丝点击