SSH双因素认证配置
SSH双因素认证可以在密钥或密码之外增加一次性验证码。即使登录凭据泄露,攻击者仍需要当前设备生成的TOTP验证码。
一、安装TOTP组件
Debian或Ubuntu执行:
apt update
apt install libpam-google-authenticator -y
使用需要启用双因素认证的普通账号运行:
google-authenticator
按照提示完成初始化,再使用支持TOTP的身份验证应用扫描二维码。恢复代码应离线保存,不要放在服务器或聊天记录中。
二、配置PAM
备份原文件:
cp /etc/pam.d/sshd /etc/pam.d/sshd.bak
编辑:
vim /etc/pam.d/sshd
加入:
auth required pam_google_authenticator.so
三、配置SSH服务
备份SSH配置:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
编辑/etc/ssh/sshd_config,确认包含:
UsePAM yes
KbdInteractiveAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
这套配置要求同时通过SSH密钥和TOTP验证。不同OpenSSH版本可能使用ChallengeResponseAuthentication兼容旧配置。
检查语法:
sshd -t
确认无错误后重新加载:
systemctl reload ssh
Rocky Linux等系统的服务名通常为sshd。
四、测试登录
不要关闭当前SSH连接。新开一个终端测试:
ssh 用户名@服务器IP
确认密钥和验证码都能通过后,再关闭原连接。
如果无法登录,可通过当前会话或服务器控制台恢复PAM与SSH配置。