使用Google Authenticator's 来做SSH双重身份验证

本文将帮助你如何与使用谷歌的Authenticator PAM模块的双因素认证保护您的SSH服务器。

谷歌双因素身份验证提供了安全的一个新的水平,从黑客到SSH服务器。本文将帮助你如何与使用谷歌的Authenticator PAM模块的双因素认证保护您的SSH服务器。现在,每次当您尝试ssh到你的服务器的时候,你必须使用你的手机或其他设备去获得登录来生成代码。

第1步:安装所需资源库

首先,我们需要添加RPMForge软件yum软件库在您的系统。使用以下命令之一添加该存储库。
CentOS/RHEL 6, 32 Bit (i686):
# rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm

CentOS/RHEL 6, 64 Bit (x86_64):
# rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

第2步:安装谷歌验证器

使用yum命令行工具安装谷歌认证。
# yum install google-authenticator

第3步:配置谷歌认证

在本教程中,我使用模拟账户进行测试。使用下面步骤来配置谷歌,认证用户demouser1。
# su - demouser1
$ google-authenticator
https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/demouser1@svr2.howtoing.com%3Fsecret%3DWUGQECLUOFLAEAAZ
Your new secret key is: WUGQECLUOFLAEAAZ
Your verification code is 002879
Your emergency scratch codes are:
  52979690
  49230818
  19888375
  80196807
  17714397

Do you want me to update your "~/.google_authenticator" file (y/n) y

Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y

By default, tokens are good for 30 seconds and in order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with poor
time synchronization, you can increase the window from its default
size of 1:30min to about 4min. Do you want to do so (y/n) y

If the computer that you are logging into isn't hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y
谷歌身份验证器会告诉你一个密钥和许多“紧急代码。”紧急代码只能在你的密钥丢失的情况下可使用一次,所以记下他们到安全的地方。 使用谷歌身份验证器应用在Android,iPhone或黑莓手机输入密钥生成的验证码。您也可以扫描URL来提供的条形码。 谷歌-Autheticator-2 谷歌-Autheticator-3 您还可以使用基于Java的应用程序生成的验证码。使用下面链接以获得详细信息。 http://blog.jcuff.net/2011/02/cli-java-based-google-authenticator.html

第4步:激活谷歌认证

为了使谷歌认证的编辑/etc/pam.d/ssh,并在第1行下方添加如下代码,而使用ssh登录这将使谷歌认证。
auth required pam_google_authenticator.so
编辑 /etc/ssh/sshd_config 和变更 ChallengeResponseAuthentication 的值为yes”。在启用此方案,openssh的可以要求用户任意数量的 multi-facited(如谷歌认证)的问题。像一般系统只要求只有用户的密码。
ChallengeResponseAuthentication yes
最后,重新启动SSH服务
# service sshd restart
谷歌-认证使用