首页 > 其他 > 详细

第三十一章 SFTP服务的搭建

时间:2021-05-24 22:50:08      阅读:19      评论:0      收藏:0      [点我收藏+]

一、SFTP概述

#1.FTP协议
FTP是一种文件传输协议,一般是为了方便数据共享的。包括一个FTP服务器和多个FTP客户端。FTP客户端通过FTP协议在服务器上下载资源。

#2.SFTP协议
sftp(Secure File Transfer Protocol)是一种安全的文件传送协议,是ssh内含协议,只要sshd服务器启动了,sftp就可使用,不需要额外安装,它的默认端口为22。

二、SFTP使用场景

#建议:更高的效率使用FTP协议,更安全的通信使用SFTP协议。

sftp通过使用加密/解密技术来保障传输文件的安全性,因此sftp的传输效率比普通的FTP要低,但sftp的安全性要比ftp高,因此sftp通常用于报表、对账单等对安全性要求较高的场景。

三、Centos 7搭建SFTP

1.查看openssh版本:版本需大于4.8

#1.查看openssh版本:版本需大于4.8
[root@prd-db01 ~]$ ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

2.创建用户组和用户

#1.使用root用户创建用户组,组名为sftpuser_vivaki;创建sftp用户,用户名为sftpuser_vivaki,并设置密码
[root@prd-db01 ~]$ groupadd sftpuser_vivaki // 创建sftp组

[root@prd-db01 ~]$ useradd -g sftpuser_vivaki -M -s /sbin/nologin sftpuser_vivaki //-M 表示创建用户时不生成对应home目录,-s /sbin/nologin 表示sftp用户不能登录系统

[root@prd-db01 ~]$ passwd sftpuser_vivaki // 修改sftp用户密码

3.修改配置文件sshd_config

[root@prd-db01 ~]$ vi /etc/ssh/sshd_config
修改如下:
#注释掉这行
#Subsystem sftp /usr/libexec/openssh/sftp-server
## 在文件末尾添加如下几行
#指定使用sftp服务使用系统自带的internal-sftp,如果不添加,用户无法通过sftp登录。
Subsystem sftp internal-sftp
#匹配用户组,如果要匹配多个组,多个组之间用逗号分割
Match Group sftpuser_vivaki
#用chroot将指定用户的根目录,chroot的含义:http://www.ibm.com/developerworks/cn/linux/l-cn-chroot/;这里的%u指的是账号名,/data/sftpuser_vivaki/%u 含义是:/data/sftpuser_vivaki/sftpuser_vivaki
ChrootDirectory /data/sftpuser_vivaki/%u 
#指定sftp命令
ForceCommand internal-sftp 
#这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
X11Forwarding no 
AllowTcpForwarding no

4.创建目录并设置Chroot目录权限

#1.使用root用户新建目录/home/sftpfile,将其设置为/data/sftpuser_vivaki的home目录,并指定目录权限
[root@prd-db01 ~]$ mkdir -p /data/sftpuser_vivaki //-p 表示parents,即递归创建目录
[root@prd-db01 ~]$ usermod -d /data/sftpuser_vivaki sftpuser_vivaki // -d 表示修改用户home目录

#2.设置Chroot目录权限
[root@prd-db01 ~]$ chown root:sftpuser_vivaki /data/sftpuser_vivaki  #文件夹所有者必须为root,用户组可以不是root=
[root@prd-db01 ~]$ chmod 755 /data/sftpuser_vivaki  #权限不能超过755,否则会导致登录报错,可以是755

#3.设置sftp用户可以操作的目录
[root@prd-db01 ~]$ mkdir /data/sftpuser_vivaki/attr_analysis
[root@prd-db01 ~]$ chown sftpuser_vivaki:sftpuser_vivaki /data/sftpuser_vivaki/attr_analysis
[root@prd-db01 ~]$ chmod 755 /data/sftpuser_vivaki/attr_analysis

5、重启SSH

#1.重启sshd服务
[root@prd-db01 ~]$ systemctl restart sshd.service

#2.查看服务状态
[root@prd-db01 ~]$ systemctl status sshd.service

四、测试验证服务正确性

#1.在其他服务器上进行验证,sftp用户名@ip地址
sftp -P 22 sftpuser_vivaki@172.31.26.143
至此已经完成了sftp创建用户,并修改权限,限制根目录。

在用户登录测试过程中,可能会遇到如下错误:
Couldn‘t read packet: Connection reset by peer
是目录权限导致了该问题。

第三十一章 SFTP服务的搭建

原文:https://www.cnblogs.com/jhno1/p/14805581.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!