如何使用双重身份验证保护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 服务器!