我已经按照设置了 libpam-google-authenticatorhttps://www.digitalocean.com/community/tutorials/how-to-set-up-multi-factor-authentication-for-ssh-on-ubuntu-16-04
它可以工作,但问题是我无法使用密码登录,需要使用密钥。如果没有密钥,我会得到拒绝权限的公钥,甚至不需要输入密码。我怎样才能让它使用公钥 + 双因素或密码 + 双因素?
答案1
我稍微想出了一个解决办法。
首先,创建一个没有密码的用户,例如:
sudo adduser backup --disabled-password
然后在/etc/ssh/sshd_config
:
Match User backup
AuthenticationMethods publickey keyboard-interactive
ForceCommand sudo login
并且位于底部sudo visudo
:
backup ALL=(ALL:ALL) NOPASSWD:/bin/login
最后,运行
google-authenticator
作为用户backup
。或者,您可以复制您的
.google_authenticator
文件给新用户。
现在,每当我需要在没有私钥的情况下登录时,我都会通过 ssh 进入用户backup
,输入我的双因素代码,然后我就会收到允许我登录到主用户的系统登录提示。