SFTP (安全文件传输协议) 利用 ssh (安全外壳协议) 提供加密和身份验证,保障文件传输安全。但 SFTP 本身并不支持 PGP 加密。如需额外加密,可考虑使用 PGP 或 SSH 密钥。以下介绍两种 SFTP 文件加密方法:
方法一:使用 GnuPG (GPG) 进行 PGP 加密
-
生成 PGP 密钥对: 使用 GnuPG 工具生成密钥对。命令如下:
gpg --gen-key
-
分发公钥: 将生成的公钥分享给文件接收者。
gpg --export -a "Your Name" > publickey.asc
-
使用公钥加密文件: 发送方使用接收方的公钥加密文件。
gpg --encrypt --recipient "Recipient Name" file.txt
-
通过 SFTP 传输加密文件: 使用 SFTP 命令传输加密后的文件。
sftp user@host put encrypted_file.txt.gpg
-
使用私钥解密文件: 接收方使用私钥解密文件。
gpg --decrypt encrypted_file.txt.gpg > file.txt
方法二:利用 SSH 密钥增强 SFTP 加密
-
安装 OpenSSH 服务器: 在服务器上安装 OpenSSH 服务器。(以 Debian/Ubuntu 为例)
sudo apt-get install openssh-server
-
配置 SSH 服务器: 编辑 SSH 配置文件 /etc/ssh/sshd_config,确保以下配置项存在且正确:
Subsystem sftp /usr/lib/openssh/sftp-server
-
重启 SSH 服务: 应用配置更改。
sudo systemctl restart ssh
-
使用 SSH 密钥认证: 在 SFTP 客户端使用私钥进行身份验证,提升安全性。
通过以上方法,您可以有效增强 SFTP 文件传输的安全性。 选择哪种方法取决于您的具体安全需求和技术能力。