当前位置: 首页>>技术问答>>正文


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

, , , ,

问题描述

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

(如果我使用密码加密码生成器,则提供two-factor authentication(2FA):密码为“what I know”,密码为“what I have”。)

最佳解决方案

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

  1. 安装libpam-google-authenticator

    • 或者只是sudo apt-get install libpam-google-authenticator

  2. 编辑/etc/pam.d/sshd以包含模块:

    • sudoedit /etc/pam.d/sshd

    • 然后将此行包含在文件的顶部并保存:

      auth required pam_google_authenticator.so
      
  3. 编辑SSH配置文件以打开挑战:

    • sudoedit /etc/ssh/sshd_config然后更改响应身份验证:

      ChallengeResponseAuthentication no 
      

      ChallengeResponseAuthentication yes
      

      然后保存该文件。

  4. sudo restart ssh重启SSH

  5. 运行google-authenticator

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

移动应用:

您需要其中一个在另一台设备上接收身份验证代码。

相关和有用:

请注意,将密码与single-use密码组合为two-factor认证:它将“what you know”(密码)与“what you have”(密码生成器设备)组合在一起。另一方面,如果您将single-use密码与SSH密钥对组合在一起,那就是“what you have”。当两个身份验证因素属于同一类型时,您没有two-factor身份验证;这有时被称为“one-and-a-half-factor认证”。

次佳解决方案

Google身份验证器适用于您的个人服务器,但您可能会发现它与您现有的身份基础架构不相符。如果您想探索其他选项,请考虑使用RADIUS作为身份验证协议和pam-radius插件。所有enterprise-oriented two-factor认证系统都支持半径。我们写了一篇关于如何添加WiKID two-factor authentication via pam-radius to Ubuntu的文档。

使用radius可以将除SSH之外的其他系统绑定到同一个身份验证服务器。您还可以通过freeradius将身份验证请求路由到LDAP,然后再路由到2FA服务器以将授权与身份验证分开。你可以用AD btw做同样的事情。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1368.html,未经允许,请勿转载。