带有密码的ssh,回退到Google Authenticator


8

随着Google Authenticator的引入以及与ssh一起使用的功能,我想知道是否有人通过了sshd_config设置,

  • 首先期待一把钥匙
  • 如果失败,请使用Google Authenticator进行身份验证

这种想法通常是与钥匙无缝连接,通常在不太友好的环境中,由两因素机制连接。

Answers:


16

是的,我有一个设置,可以ssh使用公钥身份验证到服务器,并在我的私钥不可用时使用Google Authenticator +密码回退到两因素身份验证。这些是可以用来设置它的步骤。

安装Google身份验证器

我的服务器正在运行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连接而不是 root 用户的用户身份运行此程序。记下您的新密钥和您的紧急暂存代码。该向导将询问您几个问题,以配置您帐户的安全设置。

配置您的移动应用

我使用iPhone的Google Authenticator应用。这个应用程序有一个[+]按钮,允许我使用从google-authenticator服务器上的命令获得的密钥添加新的基于时间的令牌。设置起来很简单。我无法在任何其他平台上为您提供应用程序帮助,但我认为过程同样简单。

拉动扳机

您需要做的最后一件事是重新启动sshd

$ sudo /etc/init.d/ssh restart

此时,当您尝试使用私钥可用时连接到服务器时,身份验证就可以了。如果您的私钥不可用,则会提示您输入验证码,然后提示您输入帐户密码。

宾果游戏,两要素认证。


非常感谢-这非常完整,正是我想要的。
WoJ 2011年

看起来很棒,正是我所需要的。我将按照您的指示进行操作,然后提供反馈。
peipst9lker
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.