服务器被暴力破解,如何开启二次验证?

为什么需要二次验证?

服务器被暴力破解是日常运维最常见的攻击之一。
黑客通过脚本不断尝试 root 或常见用户名+弱密码,一旦成功就能直接控制服务器。
开启二次验证(2FA)相当于在密码之外再加一把锁 —— 即使密码泄露,没有手机上的动态验证码仍然无法登录。
这种方式能阻断 99% 的自动化暴力破解。

下面以 Linux 服务器为例,使用 Google Authenticator(基于时间的一次性密码 TOTP)保护 SSH 登录。
如果你用的是宝塔面板,文末也会单独说明面板两步验证的开启路径。

前置准备

  • 一台 Linux 服务器(CentOS 7/8、Ubuntu 20.04 及以上均可)
  • 手机安装 Google AuthenticatorAuthy(支持 TOTP 的任意 APP)
  • 具备 root 权限,或能通过 sudo 执行命令
  • 已经关闭防火墙对 SSH 端口的异常阻挡,确保后续测试顺利

安装与配置 Google Authenticator

1. 安装谷歌认证模块

CentOS / RHEL 系列:

yum install -y epel-release
yum install -y google-authenticator

Ubuntu / Debian 系列:

apt update
apt install -y libpam-google-authenticator

2. 为当前用户生成密钥

运行以下命令,按提示操作:

google-authenticator

过程中会询问多个选项,建议全部选择 y(yes)。

  • 第一个问题:是否要使用基于时间的令牌?选 y
  • 第二个问题:是否更新配置文件?选 y
  • 第三个问题:是否禁止同一令牌重复使用?选 y,提升安全
  • 第四个问题:是否允许时间偏移?默认 4 分钟,推荐 y

执行后终端会显示一个 二维码(需要用手机 APP 扫描)和几个紧急恢复码。请立即截图或抄录恢复码,否则万一手机丢失将无法登录。

3. 修改 PAM 配置,启用二次验证

编辑 SSH 的 PAM 配置文件:

vim /etc/pam.d/sshd

在文件开头或 auth 部分添加一行:

auth required pam_google_authenticator.so

保存退出。

4. 修改 SSH 配置,开启交互式键盘验证

编辑 /etc/ssh/sshd_config

vim /etc/ssh/sshd_config

找到以下参数并修改:

  • ChallengeResponseAuthentication yes(如果被注释,取消注释并改为 yes)
  • UsePAM yes(确保是 yes)
  • 如果原来使用密码登录,保留 PasswordAuthentication yes

保存后重启 SSH 服务:

systemctl restart sshd

手机绑定与验证

  1. 打开手机上的 Google Authenticator APP,点击“添加” -> “扫描条形码”,扫描终端生成的二维码。
  2. APP 会显示一个每 30 秒刷新一次的 6 位数字。
  3. 保持当前 SSH 会话不要退出,另开一个终端尝试登录:
   ssh youruser@your-server-ip

输入密码后,会提示 Verification code:,输入手机上显示的动态码即可登录成功。

注意:首次配置后,原来的密码登录仍然有效(加上动态码)。
如果希望只允许二次验证登录,可以稍后修改 /etc/ssh/sshd_configPasswordAuthenticationno,但建议先用上面方式稳定运行几天。

避坑与高频问题

Q1:登录时没有出现 Verification code 提示?

  • 检查 /etc/ssh/sshd_configChallengeResponseAuthentication 是否为 yes。
  • 重启 SSH 后注意不要退出当前会话,用新窗口测试。
  • 如果使用 Alibaba Cloud 等云服务器,安全组规则中确保 SSH 端口放行。

Q2:手机丢了或 APP 被卸载怎么办?

  • 使用之前抄录的紧急恢复码,每个码只能使用一次,用完作废。
  • 若恢复码也没保存,可以连接云服务器控制台的 VNC 远程终端(不需要 SSH 登录),通过命令行重新运行 google-authenticator 生成新密钥。

Q3:时间不同步导致验证码失效?

  • 在手机上打开 Google Authenticator 的设置,点击“时间校正”进行同步。
  • 服务器端也可安装 ntpdate 同步时间:ntpdate ntp.aliyun.com

宝塔面板用户的二种选择

如果你正在用宝塔面板管理服务器,面板自带两步验证功能。
登录宝塔后台,进入 面板设置 -> 安全设置 -> 两步验证,点击“开启”并按提示扫描二维码即可。
这样面板登录也被二次验证保护,防止通过面板漏洞暴力破解。

总结:开启 SSH 二次验证是防御暴力破解性价比最高的操作之一。
花 10 分钟配置,就能让脚本攻击彻底失效。
如果你正在处理“服务器被暴力破解,如何开启二次验证”的问题,建议先按上述步骤完成 SSH 保护,再在宝塔面板中补充面板二次验证,形成双重保险。

分享到:
上一篇
Docker 容器网络配置,防止被内网攻击
下一篇
用大模型做安全扫描,能发现隐藏的漏洞吗?
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意