如何使用双重身份验证保护SSH

来自菜鸟教程
跳转至:导航、​搜索

状态: 已弃用

本文已弃用,不再维护。

原因

本文复制了更新的、准确的内容。

请参阅

本文可能仍可用作参考,但可能不起作用或无法遵循最佳实践。

请参阅 如何在 Ubuntu 16.04 上为 SSH 设置多重身份验证。


介绍

要使用双重身份验证保护您的 SSH 服务器,您可以使用 Google Authenticator PAM 模块。

每次连接时,您都必须从智能手机输入代码。

注意:如果您为普通用户激活了google-authenticator,但没有为root用户,您将无法再以root用户直接登录。 您需要先以新用户身份登录,然后使用 su 命令切换到超级用户以获取 root。

在您对 VPS 进行任何操作之前,请安装 Google Authenticator 应用程序,它适用于 Android、iOS 和 BlackBerry。 使用市场安装应用程序或使用您的移动浏览器访问 m.google.com/authenticator。 在此之后连接到您的 VPS 并切换到 root 用户。

第一步 - 安装依赖项

sudo apt-get install libpam-google-authenticator

libqrencode3 将自动安装,并允许您使用手机的摄像头直接从控制台扫描二维码。

第二步 - 编辑配置文件

要使用该模块,您必须编辑两个配置文件。

nano /etc/pam.d/sshd

在文件顶部添加以下行:

auth required pam_google_authenticator.so

还要编辑一个文件:

nano /etc/ssh/sshd_config

查找并更改以下行:

ChallengeResponseAuthentication yes

第三步 - 为用户激活双重身份验证

您可以为 root 用户或任何其他用户激活 google-authenticator。 切换到应该使用双因素身份验证的用户并输入:

google-authenticator

系统将提示您回答几个问题; 用是 (y) 回答前两个问题:

Do you want authentication tokens to be time-based (y/n) y
Do you want me to update your "/home/USERNAME/.google_authenticator" file (y/n) y

您可以根据自己的需要回答下一个问题。

您可以使用 Google Authenticator 应用程序扫描二维码,或使用密钥和验证码添加帐户。 不要忘记打印紧急刮刮代码并将它们存放在安全的地方!

现在切换回 root 并重新启动 SSH 服务器。 如果您为 root 用户添加了双重身份验证,则可以跳过下一步。

su root 

最后重启SSH服务器。

/etc/init.d/ssh restart

就是这样! 您现在应该拥有一个具有双重身份验证的 SSH 服务器!