在 Ubuntu 上“限制 SSH 用户”通常包含几类需求,下面按常见场景给你一套实用做法(基于 OpenSSH)。
编辑 SSH 配置文件:
sudo vim /etc/ssh/sshd_config
AllowUsers alice bob
⚠️ 未列出的用户将无法登录(包括 root)。
AllowGroups sshusers
然后把用户加入组:
sudo adduser alice sshusers
DenyUsers testuser
DenyGroups nogroup
修改后重启 SSH:
sudo systemctl restart ssh
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
用户需提前配置:
ssh-copy-id user@server
sudo adduser sftpuser
sudo usermod -s /usr/sbin/nologin sftpuser
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
sudo mkdir /home/sftpuser/upload
sudo chown sftpuser:sftpuser /home/sftpuser/upload
sudo visudo
示例:
alice ALL=(ALL) /usr/bin/systemctl restart nginx
sudo usermod -s /bin/rbash username
Match User alice
AllowTcpForwarding no
sudo ufw allow from 192.168.1.0/24 to any port 22
last
journalctl -u ssh
| 需求 | 做法 |
|---|---|
| 限定登录用户 | AllowUsers |
| 禁止 root | PermitRootLogin no |
| 禁止密码 | PasswordAuthentication no |
| 只能 SFTP | Match + internal-sftp |
| 限制命令 | sudo / rbash |
| 限制 IP | ufw |
如果你能告诉我:
我可以给你一套精确配置示例。