温馨提示×

CentOS SFTP如何加密

小樊
44
2026-07-20 10:46:15
栏目: 网络安全

CentOS 上,SFTP 本身已经是加密的,不需要额外“再加密”。
SFTP(SSH File Transfer Protocol)底层走的是 SSH 协议,所有数据(包括账号密码/密钥、文件内容)都会自动加密传输。

下面我分几种常见场景说明,你可以按需查看。


一、确认 SFTP 默认就是加密的(最重要)

只要你是使用 22 端口 + SSH 提供的 SFTP,就是加密的:

sftp user@服务器IP

✅ 加密内容:

  • 登录认证(密码 / 密钥)
  • 所有文件传输内容
  • 控制命令

无需额外配置。


二、CentOS 上正确开启 SFTP(标准做法)

1️⃣ 安装 SSH(一般已默认安装)

yum install -y openssh-server
systemctl enable sshd
systemctl start sshd

2️⃣ 确认 SSH 配置支持 SFTP

编辑配置文件:

vim /etc/ssh/sshd_config

确保有以下内容(默认就有):

Subsystem sftp internal-sftp

重启 SSH:

systemctl restart sshd

三、使用密钥登录(比密码更安全 ✅ 推荐)

1️⃣ 客户端生成密钥

ssh-keygen -t rsa -b 4096

2️⃣ 拷贝公钥到服务器

ssh-copy-id user@服务器IP

3️⃣ 禁用密码登录(可选但强烈推荐)

vim /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
systemctl restart sshd

✅ 这样即使有人抓包,也无法破解登录凭证。


四、限制用户只能 SFTP,不能 SSH(安全加固)

1️⃣ 创建 SFTP 专用用户

useradd -m sftpuser
passwd sftpuser

2️⃣ 修改 SSH 配置

vim /etc/ssh/sshd_config

追加:

Match User sftpuser
    ChrootDirectory /home/sftpuser
    ForceCommand internal-sftp
    X11Forwarding no
    AllowTcpForwarding no

3️⃣ 设置目录权限(非常关键)

chown root:root /home/sftpuser
chmod 755 /home/sftpuser

mkdir /home/sftpuser/upload
chown sftpuser:sftpuser /home/sftpuser/upload

✅ 用户只能 SFTP,不能登录系统
✅ 只能访问指定目录


五、如果你指的是“传输后文件加密”(不是传输加密)

SFTP 只保证 传输过程加密,不加密 服务器上的文件

如果你需要:

✅ 文件落地后也加密

可以使用:

  • gpg
  • openssl
  • 加密压缩包

示例(GPG):

gpg -c file.txt

六、常见误区澄清

问题 答案
SFTP 需要额外加密吗? ❌ 不需要
可以用 SSL 证书吗? ❌ SFTP 不是 FTP+SSL
SFTP = FTPS? ❌ 完全不同
端口一定是 22 吗? ✅ 默认是,可改

七、推荐安全配置总结 ✅

✅ 使用 SFTP(SSH)
✅ 禁用 root 登录
✅ 使用 SSH 密钥登录
✅ 限制用户 SFTP 权限
✅ 不改默认 22 端口(或配合防火墙)


如果你愿意,可以告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • 公网服务器 还是 内网
  • 是否需要 多用户隔离

我可以给你一套 可直接用的完整配置方案

0