在计算机项目开发中最常见的文件传输方式主要有两种,分别是FTP和SFTP。今天将以SFTP为重点,讨论下SFTP是什么?Linux怎么配置SFTP服务?欲了解更多的网络协议知识,可关注凡亿课堂。
SFTP是什么?
在计算机领域中,SFTP是指SSH文件传输协议(英文名为SSH File Transfer Protocol,中文名为安全文件传输协议),是数据流连接,提供文件访问、传输和管理功能的网络传输协议。
SFTP与FTP有着几乎一样的功能和语法,是一种传输档案至Blogger伺服器的安全方式,它本身没有单独的守护进程,是SSH内含协议,它的默认端口和SSH一样是22,必须使用SSHD的守护进程来完成相应的连接和答复操作。
SPFT的特点是需要使用加密/解密技术来保证文件传输的安全性,因此SFPT传输效率比FTP低,但安全性比FTP高,适用于报表、账单等对安全性要求高的场景。
Linux怎么配置SFTP?
以CentOS 7为例:
1、使用root查看openssh版本
ssh -V //版本须大于4.8p1,若版本过低,可yun update更新;
2、使用root用户创建组名我sftpgroup的用户组,创建用户名为sftpuser的SFTP用户,并设置密码
groupadd sftpgroup //创建SFTP组
useradd -g sftpgroup -M -s /bin/nologin sftpuser //-M表示创建用户时不生成对应的home目录,-s /bin/nologin表示sftp用户不能登录系统
passwd sftpuser //修改sftp用户密码
3、修改配置文件sshd_config
vi /etc/ssh/sshd_config
修改如下:
将下行注释掉
#Subsystem sftp /usr/libexec/openssh/sftp-server
##在文件末尾添加如下内容:
Subsystem sftp internal-sftp
Match Group sftpgroup
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h
ForceCommand internal-sftp
4、使用root用户新建目录/home/sftpfile,将其设置为sftpuser的home目录,并指定目录权限。
mkdir -p /sftp/sftpuser //-p表示递归创建目录
usermod -d /sftp/sftpuser sftpuser //-d表示修改用户home目录
//设置Chroot目录权限
chown root:sftpgroup /sftp/sftpuser
chmod 755 /sftp/sftpuser
//设置sftp用户可以操作的目录
mkdir /sftp/sftpuser/upload
chown sftpuser:sftpgroup /sftp/sftpuser/upload
chmod 755 /sftp/sftpuser/upload
5、重启SSH
systemctlrestart sshd.service
6、切换到sftpuser用户进行验证
sftp sftpuser@127.0.0.1
以上是SFTP的基础知识和配置服务。