如何使用Google Authenticator的双重身份验证保护SSH安全

google-authenticator-ssh-header

想要使用易于使用的双因素身份验证保护您的SSH服务器? Google提供必要的软件,将Google Authenticator的基于时间的一次性密码(TOTP)系统与您的SSH服务器集成。 您必须在连接时从手机输入验证码。

Google身份验证器不会向Google“打电话” - 所有的工作都发生在您的SSH服务器和您的手机上。 事实上,谷歌身份验证器是完全开源的 ,所以你甚至可以自己检查它的源代码。

安装Google身份验证器

要使用Google身份验证器实施多重身份验证,我们需要使用开源Google身份验证器PAM模块。 PAM代表“可插拔认证模块” - 这是一种方便地将不同形式的认证插入Linux系统。

Ubuntu的软件存储库包含一个易于安装的Google Authenticator PAM模块包。 如果你的Linux发行版不包含包对于这一点,你必须从下载谷歌身份验证器下载页面在谷歌代码并自己编译。

要在Ubuntu上安装软件包,请运行以下命令:

sudo apt-get install libpam-google-authenticator

(这只会在我们的系统上安装PAM模块 - 我们必须手动激活它进行SSH登录。)

image

创建验证密钥

身份登录,你会用远程登录用户,并运行谷歌-认证命令来创建该用户的密钥。

允许该命令通过键入y更新您的Google Authenticator文件。 然后,系统将提示您几个问题,这些问题将允许您限制使用相同的临时安全令牌,增加令牌可以使用的时间窗口,并限制允许的访问尝试以阻止暴力破解尝试。 这些选择都为一些易于使用而交易某些安全性。

image

Google身份验证器会向您显示一个密钥和几个“紧急Scratch代码”。将紧急Scratch代码写在某个安全的地方 - 它们只能使用一次,如果您丢失手机,它们适用。

image

输入您的手机上的谷歌身份验证器应用的密钥(官方应用程序可用于Android版,iOS和黑莓 )。 您还可以使用扫描条形码功能 - 转到位于命令输出顶部附近的URL,您可以使用手机的相机扫描QR码。

image

现在,您的手机上会有不断变化的验证码。

image

如果要以多个用户身份远程登录,请为每个用户运行此命令。 每个用户将有自己的密钥和自己的代码。

启用Google Authenticator

接下来,您需要使用Google Authenticator进行SSH登录。 要做到这一点,打开您的系统上上将/etc/pam.d/sshd文件(例如,用sudo的纳米上将/etc/pam.d/sshd命令),并以下行添加到文件:

auth required pam_google_authenticator.so

接下来,打开/ etc / ssh / sshd_config文件,找到ChallengeResponse验证线,并将其更改为如下:

ChallengeResponseAuthentication yes

(如果ChallengeResponse验证行不存在,上面的行添加到该文件。)

最后,重新启动SSH服务器,以便您的更改生效:

sudo service ssh restart

image

当您尝试通过SSH登录时,系统会提示您输入密码和Google身份验证器代码。

google-authenticator-ssh-header

赞 (0)
分享到:更多 ()