如何使用密码生成器进行远程登录的身份验证?

Jor*_*tro 55 ssh security authentication pam

我想通过添加另一个因素来加强我的 SSH 登录的身份验证:密码生成器设备或我手机上的密码生成应用程序。默认设置中唯一明显的选项是固定的密码和密钥对。我怎样才能做到这一点?

(如果我使用密码和密码生成器,这提供了两步验证(2FA):密码是“我知道的”,密码是“我拥有的”。)

Jor*_*tro 49

一种方法是使用 Google 提供的名为Google Authenticator的工具。

  1. 安装libpam-google-authenticator 安装 libpam-google-authenticator

    • 要不就 sudo apt-get install libpam-google-authenticator
  2. 编辑/etc/pam.d/sshd以包含模块:

  3. 编辑您的 SSH 配置文件以开启挑战:

  4. sudo restart ssh 重新启动SSH

  5. google-authenticator

    • 这将为您提供您的密钥、验证码和紧急刮刮码。它还会问你一些速率限制问题。

移动应用:

您需要其中一个才能在另一台设备上接收验证码。

相关和有用的:

请注意,将密码与一次性密码相结合是两因素身份验证:它将“您所知道的”(密码)与“您拥有的”(密码生成器设备)相结合。另一方面,如果您将一次性密码与 SSH 密钥对结合使用,则完全取决于“您拥有什么”。当两个身份验证因素类型相同时,您没有双因素身份验证;这有时被称为“一个半因素身份验证”。


小智 12

Google Authenticator 适用于您的个人服务器,但您可能会发现它与您现有的身份基础架构并不能很好地配合。如果您想探索其他选项,请考虑使用 RADIUS 作为身份验证协议和 pam-radius 插件。所有面向企业的二元认证系统都支持radius。我们已经写了一篇关于如何通过 pam-radius 向 Ubuntu添加WiKID 两因素身份验证的文档。

使用 radius 允许您将除 SSH 之外的其他系统绑定到同一身份验证服务器。您还可以通过 freeradius 将身份验证请求路由到 LDAP,然后再路由到您的 2FA 服务器,以将授权与身份验证分开。顺便说一句,您可以对 AD 执行相同的操作。