CentOS sftp 站点构建

1、检查版本

ssh –V

要求openssh的版本为  4.8p1 +

如果版本低于4.8p1 则需升级openssh

2、创建用户

创建一个登录sftp站点的用户

useradd testuser –s /bin/false

passwd testuser

3、编辑配置文件/etc/ssh/sshd_config

找到Subsystem这个配置项,将其修改为

Subsystem sftp internal-sftp

然后再到文件最尾处增加配置设定属于用户组sftpusers的用户都只能访问他们自己的home文件夹

Match Group sftpusers

ChrootDirectory %h    #也可以统一到一个目录下!如:  /opt/sftp

ForceCommand internal-sftp

#sftpusers组内的用户  只能在自己的家目录下,家目录的权限是755 root:x(文件的属组可以是其他的) %h为用户家目录

#当新加用户或新加其他的规则时,需重复这三行

#当然也可以只对单用户限定

#Match user bank

#ChrootDirectory /opt/sftp

#ForceCommand internal-sftp

AllowTcpForwarding no 

X11Forwarding no

#解释:

#禁止TCP转发

#禁止X11转发

#这两条最好为no

4、创建站点目录

sftp站点目录的权限很严苛!!!

以/opt/sftp为例

chown –R root:bank /opt

chmod –R 755 /opt

如果这样的话用户登录后在根(登录)目录下是没有写权限的,需要管理员在该目录下新建一个目录,这个目录是没有严格的界限的!如下

mkdir /opt/sftp/upload

chmod 777 /opt/sftp/upload/

注意:如果限定登录用户在自己的家目录内,也需要服从此规则,否则限定不生效,或出现如下错误

Couldn’t read packet: Connection reset by peer

5、重启sshd,测试登录

service sshd restart

sftp  -oport=xx testuser@x.x.x.x

默认端口为22

如果端口变更,可通过oport指定

需要注意:

只有符合限定规则的用户才受限定,反之不受,而且所有有密码的用户都可以登录,所以,需要合理管理系统上的用户!

密码用户可登陆!

限定的目录及其父目录的属主一定是root!!!权限一定是755!!!

子目录不限定!

发表评论

电子邮件地址不会被公开。 必填项已用*标注