首页/系统/信创系统运维速查/仅密钥登录并禁用密码认证
安全加固65 条

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

部署密钥后关闭口令登录:先 ssh-copy-id 验证密钥通道,再关 PasswordAuthentication;免密失效多数是文件权限与属主问题。

信创系统运维速查系统更新于 2026-10-13

为什么改成仅密钥登录

口令认证的最大问题是它可以被猜:公网暴露的 SSH 服务每天会收到成千上万次尝试,弱口令一旦命中,攻击者就拿到了一个可用账号。密钥认证用一对密钥替代口令,私钥不出本机,服务端只保存公钥,几乎不存在被穷举的空间,还能配合口令短语再加一层保护。把认证方式收敛到仅密钥,是 SSH 加固里收益最高的一步,但操作顺序必须谨慎:先把密钥通道验证通,再关闭口令认证。

基本信息

服务端文件用户家目录下的 .ssh/authorized_keys
客户端私钥通常位于家目录下的 .ssh 目录,权限需为仅属主可读写
目录权限家目录与 .ssh 目录不能对组和其它用户开放写权限
生效方式改配置后先做语法校验再重载服务
服务名差异RPM 系通常为 sshd,DEB 系通常为 ssh
适用平台Kylin V10 / UOS / openEuler 均为 OpenSSH

典型使用场景

  • 公网可访问的服务器:消除口令爆破带来的失陷风险
  • 自动化与发布通道:用密钥让脚本免交互登录
  • 集中运维:为运维账号统一部署公钥,便于账号与密钥的生命周期管理
  • 合规要求:身份认证方式需要收敛,禁用弱认证手段
  • 多机批量操作:配合批量执行工具走密钥通道,避免密码分发
  • 离职与交接:只需撤销对应公钥即可收回访问权限

部署密钥

部署密钥
ssh-keygen -t ed25519 -C 'ops@example'         # 生成密钥对,注意保管私钥
ssh-copy-id -i ~/.ssh/id_ed25519.pub ops@10.0.0.9   # 公钥写入服务端
ssh -i ~/.ssh/id_ed25519 -o PreferredAuthentications=publickey ops@10.0.0.9  # 验证仅密钥可登录
chmod 700 ~/.ssh                                # 服务端目录权限收紧
chmod 600 ~/.ssh/authorized_keys                # 服务端公钥文件权限收紧
restorecon -Rv ~/.ssh 2>/dev/null || true       # 启用 SELinux 的系统上修正上下文

关闭口令登录

关闭口令登录
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak   # 改前备份
# 编辑以下两项
# PasswordAuthentication no
# PubkeyAuthentication yes
sshd -t                                            # 语法校验,必须先过
systemctl reload sshd                              # 生效,不断开现有会话

免密登录失效的常见原因

现象常见原因检查方向
仍提示输入口令仍允许口令认证或密钥未被接受核对认证相关配置与实际生效值
提示权限过于开放家目录或公钥文件权限过宽收紧家目录与 .ssh 权限
反复要求输入口令短语私钥未加载到代理把私钥加入代理后重试
服务端日志显示拒绝公钥内容不完整或被截断重新拷贝公钥并核对内容
关闭口令登录前必须确认所有需要登录的通道都已配好密钥,并保留一个已登录会话与带外通道。私钥损坏或丢失后将无法登录,密钥需要有备份与撤销流程,不要只存一份在本机。
调整权限与上下文之前,先确认系统是否启用了强制访问控制。启用后仅改权限不够,还需要把目录与文件的安全上下文修正过来,否则日志里会看到明确的拒绝记录。

易错点

  • 先关口令认证再验证密钥,结果密钥不可用又没有带外通道,机器彻底失联
  • 只改配置不看最终生效值,include 片段里的设置覆盖了主文件,实际仍允许口令登录
  • 服务端权限收紧不彻底:家目录或公钥文件对组可写,认证被静默拒绝且日志不易发现
  • 公钥复制时换行丢失或内容被截断,服务端无法解析,表现为一直提示输入口令

数据来源与参考

  • man 1 ssh-keygen
  • man 5 sshd_config(PasswordAuthentication)
  • man 8 sshd(authorized_keys)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌