温馨提示×

centos sftp如何加密码

小樊
36
2026-09-27 03:47:52
栏目: 网络安全

在 CentOS 上,SFTP 本身是基于 SSH 的,所以“给 SFTP 加密码”通常有两种理解。我分别说明,你可以看哪个符合你的需求。


一、给 SFTP 用户设置登录密码(最常见)

SFTP 使用系统用户 + SSH 密码认证。

1. 创建 SFTP 用户

useradd sftpuser
passwd sftpuser

按提示输入密码即可。

2. 确保 SSH 允许密码登录

编辑 SSH 配置:

vi /etc/ssh/sshd_config

确认以下内容:

PasswordAuthentication yes

重启 SSH:

systemctl restart sshd

此时用户就可以通过:

sftp sftpuser@服务器IP

输入密码登录。


二、限制 SFTP 用户只能使用 SFTP(不能 SSH 登录)

1. 创建用户并禁止 shell

useradd -s /sbin/nologin sftpuser
passwd sftpuser

2. 修改 sshd_config

vi /etc/ssh/sshd_config

添加或修改:

Match User sftpuser
    ChrootDirectory /home/sftpuser
    ForceCommand internal-sftp
    PasswordAuthentication yes

3. 设置目录权限(非常重要)

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

重启 SSH:

systemctl restart sshd

三、给 SFTP“目录/文件”本身加密(不推荐)

Linux 没有像 Windows 那样的“文件夹密码”,但可以用:

  • LUKS 磁盘加密
  • eCryptfs
  • 压缩包密码(zip -e)

但 SFTP 登录密码 ≠ 文件密码,这是两回事。


四、常见误区说明

❌ SFTP 没有独立密码
✅ SFTP 密码 = Linux 用户密码

❌ 不能给某个“目录”单独设 SFTP 密码
✅ 只能给用户设密码


五、推荐安全做法(进阶)

  • 禁用 root 登录
  • 使用 SSH 密钥 + 密码(双因子)
  • 限制 IP 访问(firewalld / sshd)

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

  • CentOS 版本(7 / 8 / Stream)
  • 是 单独用户 还是 多用户隔离
  • 是否要 禁止 SSH 只留 SFTP

我可以直接给你一套完整配置。

0 踩