配置基于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系统中配置双因子认证(2FA)可以显著提升SSH远程登录的安全性,尤其适用于暴露在公网的服务器。通过结合密码/密钥 + 动态验证码的方式,即使凭证泄露也难以被非法登录。以下是基于Google Authenticator实现SSH双因子认证的完整配置方案。
大多数Linux发行版都支持通过`libpam-google-authenticator`包来集成TOTP(基于时间的一次性密码)验证。
1. 安装Google Authenticator软件包:sudo apt update && sudo apt install libpam-google-authenticator -ysudo dnf install epel-release -y && sudo dnf install google-authenticator -y安装完成后,为需要开启2FA的用户生成密钥:
2. 切换到目标用户并运行初始化命令:su - usernamegoogle-authenticator执行后会提示一系列问题,建议选择如下配置:
完成后会显示二维码链接、密钥、恢复码和备用验证码,请妥善保存。使用Google Authenticator或Authy等APP扫描二维码绑定账户。
编辑PAM的SSH认证配置文件,使SSH登录时要求二次验证。
编辑文件:sudo nano /etc/pam.d/sshd在文件最前面添加一行(注意顺序):
auth required pam_google_authenticator.so这表示每次SSH认证都需要通过Google Authenticator验证。如果已使用密码或密钥登录验证,此步骤将作为第二层校验。
确保SSH守护进程启用了“ChallengeResponseAuthentication”选项。
编辑SSH主配置文件:sudo nano /etc/ssh/sshd_config确认以下参数设置正确:
ChallengeResponseAuthentication yesUsePAM yes(必须启用,否则PAM规则不生效)PasswordAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
说明:设置AuthenticationMethods publickey,keyboard-interactive后,用户必须先通过SSH密钥认证,再输入TOTP验证码,实现真正的双因子认证。
重启SSH服务以应用更改:
sudo systemctl restart sshd配置完成后,从另一终端尝试SSH登录,观察流程是否包含两步验证。
常见问题:
UsePAM yes和ChallengeResponseAuthentication yes是否生效/var/log/auth.log(Ubuntu)或/var/log/secure(RHEL)sudo timedatectl set-ntp true
可临时保留一个未启用2FA的管理员会话用于调试,避免被锁在系统外。
基本上就这些。配置得当后,你的Linux服务器SSH登录将具备高强度安全保障。
以上就是Linux如何配置系统双因子登录_LinuxSSH2FA安全方案的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号