要使用易于使用的双因素认证来保护您的SSH服务器? Google提供必要的软件,可将Google Authenticator的基于时间的一次性密码(TOTP)系统与您的SSH服务器相集成。当您连接时,您必须从手机输入代码。
Google身份验证器不会向Google“回家”事实上,Google Authenticator是完全开源的,所以你甚至可以自己检查它的源代码。
要使用Google Authenticator实施多因素身份验证,我们需要开源的Google Authenticator PAM模块。PAM代表“可插拔认证模块” – 它可以轻松地将不同形式的认证插入到Linux系统中。
Ubuntu的软件仓库包含一个易于安装的Google Authenticator PAM模块软件包。如果您的Linux发行版不包含该软件包,则必须从Google Code的Google Authenticator下载页面下载该文件并自行编译。
要在Ubuntu上安装软件包,请运行以下命令:
sudo apt-get install libpam-google-authenticator
(这将仅在我们的系统上安装PAM模块 – 我们必须手动激活SSH登录。)
作为您将远程登录的用户登录,并运行google-authenticator命令为该用户创建一个密钥。
通过输入y可以使命令更新您的Google Authenticator文件。然后会提示您提出几个问题,这些问题将允许您限制使用相同的临时安全性令牌,增加令牌可以使用的时间窗口,并限制允许的访问次数来阻止暴力破解尝试。这些选择都为一些易于使用的交易提供了一些安全保障。
Google Authenticator将向您显示一个秘密密钥和几个“紧急划痕代码”。“将紧急划痕代码写在一个安全的地方 – 它们只能使用一次,如果您丢失手机,它们将被用于使用。
在您手机上的Google Authenticator应用程式中输入密码(官方应用程式适用于Android,iOS和Blackberry)。您还可以使用扫描条形码功能 – 转到位于命令输出顶部附近的URL,您可以使用手机的相机扫描QR码。
您的手机上的验证码不断变化。
如果要作为多个用户远程登录,请为每个用户运行此命令。每个用户将拥有自己的秘密密钥和自己的密码。
下一步您将不得不要求Google Authenticator进行SSH登录。为此,请打开/ etc / pam。您的系统上的d / sshd文件(例如,使用sudo nano / etc / pam)d / sshd命令),并将以下行添加到file:
auth需要pam_google_authenticator。so
下一步,打开/ etc / ssh / sshd_config文件,找到ChallengeResponseAuthentication行,并将其更改为如下所示:
ChallengeResponseAuthentication yes
(如果ChallengeResponseAuthentication行不存在,请将上述行添加到该文件。)
最后,重新启动SSH服务器,所以您的更改将生效109mh1112
sudo服务ssh restart
当您尝试通过SSH登录时,系统将提示您输入密码和Google Authenticator代码。