![OpenSSH U2F 作为第二个因素,并回退到 Google Authenticator](https://linux22.com/image/180915/OpenSSH%20U2F%20%E4%BD%9C%E4%B8%BA%E7%AC%AC%E4%BA%8C%E4%B8%AA%E5%9B%A0%E7%B4%A0%EF%BC%8C%E5%B9%B6%E5%9B%9E%E9%80%80%E5%88%B0%20Google%20Authenticator.png)
我们使用 Google Authenticator 进行 2FA SSH 登录。它的配置/etc/pam.d/sshd
如下:
@include common-password
auth required pam_google_authenticator.so nullok
你可能知道,OpenSSH 8.2 附带 U2F 密钥支持。我们希望按以下方式使用 U2F:
- 如果用户使用启用 U2F 的密钥进行身份验证,则无需询问 Google 身份验证器代码即可让他们进入。
- 如果用户使用简单密钥进行身份验证,请要求提供身份验证器代码。
我该如何实现这一目标? U2F 密钥属于特定类型(注意后缀-SK
):
$ ssh-keygen -l -f ~/.ssh/id_ecdsa_sk.pub
256 SHA256:8+ktnvXXshnIek7fEffbEQUhFvwZXOfahSHRagxcdbc pypt@NN (ECDSA-SK)
那么也许有一种方法可以将 PAM 配置为仅允许特定的密钥类型?