温馨提示×

如何禁用debian的sftp

小樊
37
2026-10-27 02:41:15
栏目: 智能运维

在 Debian 中,“禁用 SFTP”通常有以下几种理解场景。下面按常见需求逐一说明,你可以按需选择。


一、完全禁止所有用户的 SFTP(最常用)

SFTP 由 SSH 的 Subsystem 提供,最简单的方式是禁用 SFTP 子系统。

方法 1:注释 SFTP 子系统(推荐)

编辑 SSH 服务配置:

sudo nano /etc/ssh/sshd_config

找到这一行:

Subsystem sftp /usr/lib/openssh/sftp-server

改成:

# Subsystem sftp /usr/lib/openssh/sftp-server

或者改为:

Subsystem sftp /bin/false

重启 SSH:

sudo systemctl restart ssh

✅ 效果:所有用户都无法使用 SFTP,但 SSH 仍可登录(如果允许)。


二、只允许 SSH,不允许 SFTP(用户仍可用 shell)

如果你希望用户能登录服务器但不能用 SFTP,可以限制:

Subsystem sftp /bin/false

效果同上,但更明确。


三、仅禁止某些用户的 SFTP(精细控制)

方法:使用 Match 块

Match User testuser
    ForceCommand /bin/bash
    # 或直接禁止 SFTP
    Subsystem sftp /bin/false

或完全禁止该用户使用 SFTP:

Match User testuser
    DisableForwarding yes
    ForceCommand /usr/sbin/nologin

重启 SSH:

sudo systemctl restart ssh

四、彻底禁止 SFTP 端口(不推荐)

SFTP 使用 SSH 端口(默认 22),无法单独关闭 SFTP 端口而不影响 SSH。

如果你只想禁止外部访问:

sudo ufw deny 22

⚠️ 这会连 SSH 也禁止。


五、验证是否禁用成功

从客户端测试:

sftp user@server

应出现类似:

subsystem request failed on channel 0

✅ 表示 SFTP 已禁用。


总结建议

需求 推荐方案
所有用户禁用 SFTP 注释 Subsystem sftp
指定用户禁用 Match User
保留 SSH 登录 不改 SSH 登录方式
禁止外部访问 防火墙(谨慎)

如果你能说明:是想禁止所有用户 / 某个用户 / 只保留 SCP,我可以给你更精确的配置。

0 踩