首页 > 运维 > linux运维 > 正文

Linux如何配置系统双因子登录_LinuxSSH2FA安全方案

冰川箭仙
发布: 2025-11-28 20:30:06
原创
424人浏览过
配置基于Google Authenticator的SSH双因子认证需安装libpam-google-authenticator,生成用户密钥并绑定至验证APP,随后在/etc/pam.d/sshd中添加auth required pam_google_authenticator.so,确保sshd_config中启用ChallengeResponseAuthentication yes、UsePAM yes,并设置AuthenticationMethods publickey,keyboard-interactive以实现密钥+动态验证码双重验证,最后重启sshd服务生效。

linux如何配置系统双因子登录_linuxssh2fa安全方案

在Linux系统中配置双因子认证(2FA)可以显著提升SSH远程登录的安全性,尤其适用于暴露在公网的服务器。通过结合密码/密钥 + 动态验证码的方式,即使凭证泄露也难以被非法登录。以下是基于Google Authenticator实现SSH双因子认证的完整配置方案。

启用Google Authenticator PAM模块

大多数Linux发行版都支持通过`libpam-google-authenticator`包来集成TOTP(基于时间的一次性密码)验证。

1. 安装Google Authenticator软件包:
- Ubuntu/Debian:
sudo apt update && sudo apt install libpam-google-authenticator -y
- CentOS/RHEL/AlmaLinux(需 EPEL):
sudo dnf install epel-release -y && sudo dnf install google-authenticator -y

安装完成后,为需要开启2FA的用户生成密钥:

2. 切换到目标用户并运行初始化命令:
su - username
google-authenticator

执行后会提示一系列问题,建议选择如下配置:

  • 是否创建一个基于时间的认证器? → y
  • 允许该令牌被使用一次吗? → y(防止重放攻击)
  • 时间容差增加(最多 4 分钟)? → y
  • 是否禁止多次使用同一令牌? → y
  • 是否启用速率限制? → y(防止暴力破解)

完成后会显示二维码链接、密钥、恢复码和备用验证码,请妥善保存。使用Google Authenticator或Authy等APP扫描二维码绑定账户。

配置PAM支持双因素认证

编辑PAM的SSH认证配置文件,使SSH登录时要求二次验证。

编辑文件:
sudo nano /etc/pam.d/sshd

在文件最前面添加一行(注意顺序):

auth required pam_google_authenticator.so

这表示每次SSH认证都需要通过Google Authenticator验证。如果已使用密码或密钥登录验证,此步骤将作为第二层校验。

修改SSH服务配置以支持挑战响应

确保SSH守护进程启用了“ChallengeResponseAuthentication”选项。

Natural Language Playlist
Natural Language Playlist

探索语言和音乐之间丰富而复杂的关系,并使用 Transformer 语言模型构建播放列表。

Natural Language Playlist 67
查看详情 Natural Language Playlist
编辑SSH主配置文件:
sudo nano /etc/ssh/sshd_config

确认以下参数设置正确:

  • ChallengeResponseAuthentication yes
  • UsePAM yes(必须启用,否则PAM规则不生效)
  • 若使用密码登录:PasswordAuthentication yes
  • 推荐禁用纯密码登录,仅允许密钥+2FA:AuthenticationMethods publickey,keyboard-interactive

说明:设置AuthenticationMethods publickey,keyboard-interactive后,用户必须先通过SSH密钥认证,再输入TOTP验证码,实现真正的双因子认证。

重启SSH服务以应用更改:

sudo systemctl restart sshd

测试与故障排查

配置完成后,从另一终端尝试SSH登录,观察流程是否包含两步验证。

  • 使用SSH密钥连接时,应提示输入“Verification code:”
  • 该码来自Google Authenticator APP中对应的条目
  • 输入正确后方可登录

常见问题:

  • 无法登录且无验证码提示? 检查UsePAM yesChallengeResponseAuthentication yes是否生效
  • PAM报错日志? 查看/var/log/auth.log(Ubuntu)或/var/log/secure(RHEL)
  • 时间不同步导致验证码无效? 确保服务器启用NTP同步:sudo timedatectl set-ntp true

可临时保留一个未启用2FA的管理员会话用于调试,避免被锁在系统外。

基本上就这些。配置得当后,你的Linux服务器SSH登录将具备高强度安全保障。

以上就是Linux如何配置系统双因子登录_LinuxSSH2FA安全方案的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号