禁用某账户远程登录的核心是通过DenyUsers指令在/etc/ssh/sshd_config中精准拦截,而非全局关闭SSH服务;需添加DenyUsers username并重启sshd,确保认证前阻断且不可绕过。
禁用某个账户的远程登录权限,核心在于控制它能否通过 ssh 登录系统。macos 默认不按账户粒度开关远程登录,而是全局启用/禁用 ssh 服务(sshd),再通过系统级配置限制具体用户——这才是真正“禁用某账户远程登录”的安全做法。
一、确认远程登录服务是否已开启
先检查 SSH 是否在运行,避免做无用操作:
- 打开终端,执行:
sudo systemsetup -getremotelogin
若显示 RemoteLogin: On,说明 SSH 服务已启用 - 也可用:
sudo launchctl list | grep ssh
有输出表示 sshd 正在运行
二、禁止特定用户通过 SSH 登录(推荐)
这是最精准的方式:保持 SSH 服务可用,但阻止目标账户建立连接。需编辑 SSH 主配置文件:
- 用管理员权限打开配置文件:
sudo nano /etc/ssh/sshd_config - 在文件末尾添加一行(替换
username为实际用户名):
DenyUsers username
如要禁止多个用户,可写成:
DenyUsers alice bob - 保存并退出(nano 中按
Ctrl+O → Enter → Ctrl+X) - 重启 SSH 服务使生效:
sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist && sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
三、替代方案:从用户组层面控制
如果你把需要远程访问的用户统一加入某个群组(如 remoteusers),可改用白名单方式,更利于长期管理:
- 在
/etc/ssh/sshd_config中添加:
AllowGroups remoteusers - 确保目标账户不在该群组内:
sudo dseditgroup -o edit -d username -t user remoteusers - 同样需重启 sshd
四、额外加固:关闭图形界面中的开关(可选)
虽然不影响命令行 SSH,但为防误操作或非技术人员介入,建议同步关闭图形化入口:
- 进入「系统设置 → 通用 → 共享」
- 取消勾选「远程登录」
- 注意:这会全局停用 SSH,与上两步逻辑不同——仅当你确定无需任何账户远程登录时才选此项
关键提醒:不要依赖“删除用户 SSH 密钥”或“禁用密码登录”来封锁账户,这些方法易被绕过;DenyUsers 是由 sshd 在认证前拦截,不可 bypass,也无需改动用户本身配置。


















