Linux SSH登录权限控制_SSH安全配置教程

5次阅读

应禁用root直接ssh登录、修改为非默认端口、仅允许指定用户/组登录、启用密钥认证并禁用密码登录。具体包括:设permitrootlogin no,改port为2222等,配allowusers或allowgroups,开pubkeyauthentication yes、关passwordauthentication no。

Linux SSH登录权限控制_SSH安全配置教程

禁止root用户直接SSH登录

直接允许root通过SSH远程登录是高风险行为,一旦密码泄露或被暴力破解,攻击者将获得系统最高权限。应修改SSH服务配置,禁用root登录。

编辑SSH主配置文件:
sudo nano /etc/ssh/sshd_config

找到并修改以下行:

  • PermitRootLogin no(推荐设为 no;若必须临时启用,可用 without-password 限制仅密钥登录)
  • 确保 PubkeyAuthentication yes 已开启(为后续密钥登录做准备)

保存后重启服务生效:
sudo systemctl restart sshd

改用非默认端口降低扫描风险

SSH默认使用22端口,大量自动化扫描工具会持续探测该端口。更换为高位端口(如2222、3333等)可显著减少无效连接和暴力尝试。

/etc/ssh/sshd_config 中修改:

  • 取消注释并修改 Port 2222(可选多个端口,如 Port 2222nPort 3333
  • 注意:若启用防火墙(如ufw/firewalld),需同步放行新端口
  • SElinux启用时,还需运行 sudo semanage port -a -t ssh_port_t -p tcp 2222

配置完成后务必先测试新端口连接成功,再关闭22端口或删除原Port行,避免锁死。

仅允许指定用户或用户组登录

限制可SSH登录的账户范围,能有效缩小攻击面。例如只允许运维组成员或特定管理账号接入。

/etc/ssh/sshd_config 中添加:

  • AllowUsers alice bob@192.168.1.*(允许多个用户,支持IP限制)
  • 或使用 AllowGroups sshusers,然后创建组并添加用户:
    sudo groupadd sshusers && sudo usermod -aG sshusers alice
  • 避免同时配置 DenyUsersAllowUsers,以免逻辑冲突;优先使用 Allow* 白名单机制

启用密钥认证并禁用密码登录

密码认证易受暴力破解和重放攻击,而SSH密钥对(尤其是带密码的私钥)安全性高得多。建议完成密钥部署后彻底关闭密码登录。

操作步骤:

  • 客户端生成密钥对:ssh-keygen -t ed25519 -C “admin@server”
  • 上传公钥到服务器:ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server -p 2222
  • 服务端确认 ~/.ssh/authorized_keys 权限为 600,目录为 700
  • sshd_config 中设置:
    PasswordAuthentication no
    ChallengeResponseAuthentication no

务必在断开当前连接前,用新密钥从另一终端测试登录成功,再重载sshd服务。

text=ZqhQzanResources