在 CentOS 上,SFTP 本身是基于 SSH 的,所以“给 SFTP 加密码”通常有两种理解。我分别说明,你可以看哪个符合你的需求。
SFTP 使用系统用户 + SSH 密码认证。
useradd sftpuser
passwd sftpuser
按提示输入密码即可。
编辑 SSH 配置:
vi /etc/ssh/sshd_config
确认以下内容:
PasswordAuthentication yes
重启 SSH:
systemctl restart sshd
此时用户就可以通过:
sftp sftpuser@服务器IP
输入密码登录。
useradd -s /sbin/nologin sftpuser
passwd sftpuser
vi /etc/ssh/sshd_config
添加或修改:
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
PasswordAuthentication yes
chown root:root /home/sftpuser
chmod 755 /home/sftpuser
mkdir /home/sftpuser/upload
chown sftpuser:sftpuser /home/sftpuser/upload
重启 SSH:
systemctl restart sshd
Linux 没有像 Windows 那样的“文件夹密码”,但可以用:
但 SFTP 登录密码 ≠ 文件密码,这是两回事。
❌ SFTP 没有独立密码
✅ SFTP 密码 = Linux 用户密码
❌ 不能给某个“目录”单独设 SFTP 密码
✅ 只能给用户设密码
如果你愿意,可以告诉我:
我可以直接给你一套完整配置。