在Linux环境中做文件传输,第一个要考虑的事情就是传输过程的安全性。
好在,SFTP(SSH文件传输协议)本身就是一个加密传输工具——它走的其实是SSH协议的老路子,整个数据传输全程加密,所以用起来不需要额外再加一层锁。换句话说,SSH连上,SFTP的数据就已经安全了。
具体怎么操作?其实配置起来比想象中要简单不少。
第一步:先安装SFTP服务端
首先要确保机器上有一个SFTP服务器。常见的选项有OpenSSH(默认推荐)、vsftpd等。以最普遍的OpenSSH为例,打开终端,执行下面这组命令就够了:
sudo apt-get update
sudo apt-get install openssh-server
装完之后,服务会自动启动,但还需要做一个关键配置。
第二步:配置SFTP子系统
接下来要编辑SSH的主配置文件:/etc/ssh/sshd_config。找到这一行:
#Subsystem sftp /usr/lib/openssh/sftp-server
注意前面有个#号,表示这行被注释掉了。需要把它去掉(取消注释),然后保存文件。就是这么简单,什么都不用改,只需让SFTP子系统激活即可。
第三步:重启SFTP服务
配置生效的前提是重启SSH服务。执行以下命令:
sudo systemctl restart ssh
完成后,服务就已经就绪了。
第四步:用SFTP客户端连上去
在终端里用下面命令连接服务器:
sftp username@hostname
其中username是你系统上的用户名,hostname是服务器IP或域名。连接成功后,你会看到一个sftp>的提示符,说明你已经在SFTP的交互环境里了。
第五步:开始传输文件
在sftp>提示符下,常用的操作大家都熟悉:
get remote-file local-file—— 从远程服务器下载文件到本地put local-file remote-file—— 将本地文件上传到远程服务器ls—— 列出当前远程目录的文件cd—— 切换远程目录mkdir—— 在远程服务器上新建目录rm—— 删除远程服务器上的文件bye—— 断开连接退出
整个过程做完后,你会意识到一件事:默认配置下,SFTP本身就已经把加密这一环包圆了。不需要加V**,不需要额外安装什么TLS工具,传输过程天然加密,这才是它最省心的地方。
