什么是SFTP?
SFTP是Secure File Transfer Protocol的缩写,是一种基于SSH(Secure Shell)协议的文件传输协议,用于安全地传输文件。与FTP协议相比,SFTP通过加密传输数据和具有可信任公钥加密的身份验证提供更高的安全性和保密性。
在CentOS Linux上安装OpenSSH Server
在CentOS Linux上使用SFTP,需要先安装SSH服务器。可以使用以下命令在CentOS上安装OpenSSH服务器:
sudo yum install openssh-server
一旦安装完成,SSH服务器将自动启动,并且它的配置文件' /etc/ssh/sshd_config'将被创建。此文件定义如何配置SSH服务器。
配置OpenSSH Server以允许SFTP访问
默认情况下,OpenSSH Server允许SSH连接,但不允许SFTP连接。要配置OpenSSH Server以允许SFTP访问:
编辑SSH服务配置文件 '/etc/ssh/sshd_config'。
找到以下行:
#Subsystem sftp /usr/libexec/openssh/sftp-server
将它修改为:
Subsystem sftp internal-sftp
在文件底部添加以下行:
Match group sftp
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
保存并关闭该文件。
使用以下命令重启SSH服务以应用配置更改:
sudo systemctl restart sshd.service
以上配置允许用户使用SFTP连接到OpenSSH Server,但仅允许他们访问其个人主目录。启用'ChrootDirectory'选项是强制性的,因为它使用户仅能访问他们自己的主目录,而不是整个文件系统。
在CentOS Linux上使用SFTP进行安全的远程文件传输
一旦设置了SSH服务器并配置了SFTP访问权限,就可以使用SFTP进行远程文件传输。在Linux命令行下,运行以下命令以使用SFTP连接到远程主机:
sftp username@remote_host
当出现提示时,输入远程主机的管理员密码并按 Enter 键。在成功连接之后,SFTP命令行旁边将出现' sftp>'提示符,表示已准备好执行SFTP命令。
以下是一些可用的SFTP命令:
cd:更改当前目录。
ls:列出当前工作的远程目录中的文件和子目录。
put local_file:将本地文件上传到远程主机。
get remote_file:从远程主机下载文件到本地主机。
mkdir directory_name:在当前远程目录中创建新目录。
rm remote_file:从远程主机中删除指定的文件。
exit:关闭SFTP会话并退出SFTP命令行。
注意,在SFTP命令中指定的路径应该使用远程主机的路径格式,而不是本地主机的路径格式。例如,要将本地文件'/home/user1/local_file.txt'上传到远程主机的'/home/user2/'目录中,请在SFTP命令行中运行以下命令:
sftp> put /home/user1/local_file.txt /home/user2/
使用SFTP时应注意安全性。建议始终使用密码保护的SSH密钥对进行身份验证,并使用复杂的密码来保护SSH密钥。
结论
SFTP是一种安全的文件传输协议,可以在CentOS Linux上使用任何支持SSH协议的客户端上传和下载文件。通过安装OpenSSH Server和进行适当的配置,可以轻松地启用SFTP访问权限,并实现安全的远程文件传输。
还没有评论,来说两句吧...