温馨提示×

Ubuntu SSH如何管理多个用户

小樊
35
2025-11-24 13:47:30
栏目: 智能运维

Ubuntu SSH 多用户管理实操指南

一 基础准备

  • 安装并启动 OpenSSH 服务,确认状态为 active (running),并设置开机自启:
    • 安装:sudo apt install openssh-server
    • 状态:sudo systemctl status ssh
    • 自启:sudo systemctl enable ssh
    • 重启:sudo systemctl restart ssh
  • 防火墙放行 TCP 22(如使用 UFW):sudo ufw allow 22/tcp && sudo ufw reload。以上确保多用户可通过 SSH 同时接入服务器。

二 用户与权限管理

  • 创建系统用户:优先使用交互式 adduser(会自动创建同名组与 /home/用户名 目录),避免 useradd 因缺参导致无家目录/无 shell 等问题。
    • 创建:sudo adduser alice
    • 查询信息:id alice
  • 授予管理员权限:将用户加入 sudo 组(Ubuntu 默认策略)。
    • 授权:sudo usermod -aG sudo alice
  • 精细化授权:如需限制特定命令或免密,使用 visudo 编辑 /etc/sudoers,避免直接编辑导致语法错误。
    • 示例(按需选择):
      • 全部 sudo:alice ALL=(ALL:ALL) ALL
      • 免密 sudo:alice ALL=(ALL) NOPASSWD:ALL
  • 资源与目录权限:为用户项目目录设置所有权与权限,避免越权访问。
    • 示例:sudo chown alice:alice /data/project && sudo chmod 755 /data/project
  • 账户清理:删除不再使用的账户及其家目录。
    • 删除:sudo userdel -r alice(-r 同时删除家目录;如进程占用可谨慎使用 -f)。

三 SSH 访问控制与并发

  • 启用密钥登录并禁用密码(推荐):
    • 客户端生成密钥:ssh-keygen -t ed25519(或 -t rsa -b 4096
    • 服务端放置公钥(以用户 alice 为例):
      • 目录与权限:mkdir -p /home/alice/.ssh && chmod 700 /home/alice/.ssh
      • 写入公钥:echo “公钥内容” >> /home/alice/.ssh/authorized_keys
      • 权限:chmod 600 /home/alice/.ssh/authorized_keys && chown -R alice:alice /home/alice/.ssh
    • 修改 /etc/ssh/sshd_configPasswordAuthentication no,保存后重启 SSH。
  • 限制可登录对象与并发会话:
    • 仅允许指定用户:AllowUsers alice bob
    • 仅允许指定组:AllowGroups sshusers
    • 并发会话与认证尝试:MaxSessions 10MaxAuthTries 3
  • 禁止 root 远程登录:PermitRootLogin no
  • 修改配置后务必先保留一个已登录会话进行验证,再关闭旧会话,防止误锁。

四 常用运维命令清单

  • 服务管理:sudo systemctl status|start|restart|enable|disable ssh
  • 连接测试:ssh alice@服务器IP -i ~/.ssh/id_ed25519
  • 会话与端口检查:
    • 查看端口监听:sudo netstat -tlnp | grep sshd
    • 查看当前会话:whow
  • 日志排查:sudo journalctl -u ssh -f(实时查看 SSH 服务日志)

五 安全加固建议

  • 使用 SSH 协议 2Protocol 2
  • 禁用空密码:PermitEmptyPasswords no
  • 限制认证次数:MaxAuthTries 3
  • 仅允许密钥登录:PasswordAuthentication no
  • 限制登录用户/组:AllowUsers / AllowGroups
  • 禁用 root 登录:PermitRootLogin no
  • 变更前保留一个 root/管理会话,变更后用新会话验证,再关闭旧会话,避免被锁。

0