随着Google 身份验证器以及与 ssh 一起使用我想知道是否有人经历过 sshd_config 设置,它会
- 首先期待一个关键
- 如果失败,则使用 Google Authenticator 进行身份验证
其理念通常是通过密钥无缝连接,并且通常在不太友好的环境中,通过双因素机制连接。
答案1
是的,我有一个设置,我可以ssh
使用公钥身份验证登录我的服务器,当我的私钥不可用时,可以使用 Google Authenticator + 密码进行双因素身份验证。这些是您可以用来设置它的步骤。
安装 Google Authenticator
我的服务器正在运行 Ubuntu Bionic Beaver (18.04.1)。您可以使用以下方式安装 Google Authenticator apt
:
$ sudo apt install libpam-google-authenticator
配置 sshd
打开/etc/pam.d/sshd
并在顶部添加以下行:
auth optional pam_google_authenticator.so
打开/etc/ssh/sshd_config
并更改一行。现有行是
ChallengeResponseAuthentication no
你应该把它改成
ChallengeResponseAuthentication yes
为您的账户配置 Google 身份验证器
下一步是为您的帐户启用 Google Authenticator。您只需运行以下命令即可完成此操作:
$ google-authenticator
确保以将要建立 ssh 连接的用户身份运行此命令,不是根。记下您的新密钥和紧急暂存代码。向导将询问您几个问题以配置您帐户的安全设置。
配置您的移动应用程序
我使用 iPhone 版 Google Authenticator 应用。此应用有一个 [+] 按钮,允许我使用从google-authenticator
服务器上的命令获得的密钥添加新的基于时间的令牌。设置过程很简单。我无法帮助您使用其他平台上的应用,但我想这个过程同样简单。
扣动扳机
您需要做的最后一件事是重新启动sshd
。
$ sudo /etc/init.d/ssh restart
此时,当您的私钥可用时尝试连接到服务器,身份验证即可正常工作。当您的私钥不可用时,您将收到验证码提示,然后输入您的帐户密码。