SFTP是一种安全文件传输协议,用于通过加密的SSH传输访问,管理和传输文件。 与传统的FTP协议相比,SFTP提供了FTP的所有功能,并且更易于配置。本文以CentOS 7.9操作系统为例,介绍配置SFTP、使用SFTP上传、下载文件和文件夹的操作步骤。
操作步骤
-
以root用户登录云服务器。
-
执行以下命令,查看OpenSSH版本。
ssh -V
回显信息如下所示。
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
如果OpenSSH版本低于4.8p1,需执行以下命令,升级OpenSSH。yum update -y openssh-server
-
配置SFTP。
创建用户组
[root@lxf-test-vpn ~]# groupadd sftp
创建用户并加入到用户组sftp中,同时设置用户密码
[root@lxf-test-vpn ~]# useradd -g sftp -s /sbin/nologin sftpuser
设置 sftpuser用户的密码
[root@lxf-test-vpn ~]# passwd sftpuser
Changing password for user sftpuser.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
更改属主和权限
[root@lxf-test-vpn ~]#chown root:sftp /home/sftpuser
[root@lxf-test-vpn ~]#chmod 755 /home/sftpuser
创建文件目录供用户sftpuser上传和下载文件
[root@lxf-test-vpn ~]#mkdir /home/sftpuser/test
修改文件目录的拥有者和权限
[root@lxf-test-vpn ~]#chown -R sftpuser:sftp /home/sftpuser/test
[root@lxf-test-vpn ~]#chmod -R 755 /home/sftpuser/test
配置sshd_config文件
[root@lxf-test-vpn ~]#vim /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp #指定使用sftp服务使用系统自带的internal-sftp
Match Group sftp #限定只有sftp组的用户才能访问
ChrootDirectory /home/sftpuser #设定属于用户组sftp的用户访问的根目录,需根据实际替换根目录
ForceCommand internal-sftp #指定sftp命令
AllowTcpForwarding no #禁止允许TCP转发
X11Forwarding no #禁止X11转发
配置如下图所示。
重启sshd服务。systemctl restart sshd
-
使用SFTP上传、下载文件或文件夹。
远程连接到云服务器
sftp -oPort=22 sftpuser@47.99.XX.XX
sftp命令示例如下:
1. pwd:显示远端服务器的目录,即SFTP服务器默认的当前目录。
2. lpwd:显示本地目录。
3. ls:显示SFTP服务器下当前目录下的文件和目录。
4. lls:显示本地当前目录下的文件和目录。
5. put:将本地文件上传到SFTP服务器。
6. get:将SFTP服务器上的文件下载到本地。