怎样为 SSH 连接启用双因素身份验证

就其本身而言,SSH 是一种连接到远程计算机的安全方式。 但是,如果您仍然热衷于为 SSH 连接添加额外的安全性,则可以添加双因素身份验证,以便在您通过 SSH 连接时提示您输入随机验证码。 我们之前向您展示了怎样在各种社交网络上执行此操作,并在此处向您展示了怎样将双因素身份验证添加到您的 SSH 连接。

笔记: 本教程基于 Ubuntu 服务器。 如果您使用的是其他发行版,则某些命令可能会有所不同。

内容

为 SSH 安装双因素身份验证

在将安装双因素身份验证的计算机上打开终端会话,键入以下内容:

sudo apt install ssh libpam-google-authenticator

要完成安装,请运行:

google-authenticator

提示:了解怎样使用 SSH X 转发来运行远程应用程序。

配置 SSH 双因素身份验证

系统将提示您一系列问题。 在大多数情况下,您可以键入“y”(是)作为答案。 如果设置有误,请按 Ctrl + C,然后键入 google-authenticator 再次重置设置。

  1. 该程序将询问您是否希望身份验证令牌基于时间。 为此,请按 Y 然后 Enter.

在这个问题之后,你应该看到你的密钥和紧急代码。 记录并保存详细信息。 稍后您将需要密钥来设置 Google 身份验证器应用程序。

两因素 Ssh 指南 01 运行验证器
双因素 Ssh 指南 11 生成密钥
  1. 该程序会询问您是否要更新“/home/username/.google_authenticator”文件。 然后按 Y Enter.
两因素 Ssh 指南 07 更新 Google 身份验证配置
  1. 当系统询问您是否要禁止多次使用同一身份验证令牌时,这将限制您每 30 秒只能登录一次。 如果您想确保在任何给定时间只有一个活动连接可以使用身份验证令牌,这会很有帮助。
两因素 Ssh 指南 08 切换身份验证令牌的多种用途
  1. 默认情况下,身份验证令牌仅有效 30 秒。 为了补偿客户端和服务器之间可能存在的时间偏差,将窗口从其默认大小 1-1/2 分钟增加到大约 4。这在本地计算机或远程服务器的时钟不正确的情况下很有用同步。
两因素 Ssh 指南 09 延长时间限制
  1. 为身份验证模块启用速率限制。 此选项将攻击者限制为每 30 秒不超过 3 次登录尝试。
两因素 Ssh 指南 10 启用速率限制

配置 SSH 以使用 Google 身份验证器

  1. 打开“/etc/pam.d/sshd”文件:
sudo nano /etc/pam.d/sshd
两因素 Ssh 指南 02 打开 Pam 配置
  1. 将此行添加到文件的顶部:
auth       required     pam_google_authenticator.so
两因素 Ssh 指南 03 更新 Pam 配置
  1. 按 Ctrl + O 和 Ctrl + X 保存并退出文件。
  1. 打开“/etc/ssh/sshd_config”文件:
sudo nano /etc/ssh/sshd_config
  1. 向下滚动到文件底部并键入以下行:
ChallengeResponseAuthentication yes
双因素 Ssh 指南 04 编辑 Sshd 配置
  1. Save 并退出文件。
  1. 重启ssh服务器:
sudo systemctl restart ssh
两因素 Ssh 指南 05 重启 Ssh 守护进程

在 Google 身份验证器中设置密钥

  1. 在您的智能手机(或台式机)上打开 Google Authenticator 应用程序(或其替代应用程序之一)。 按应用程序左下角的加号图标,然后选择“Enter 一个设置密钥。”
双因素 Ssh 指南 12 链接新密钥
  1. 为您的身份验证应用程序提供一个名称。
两因素 Ssh 指南 13 创建新的授权名称
  1. 输入您之前生成的密钥,然后按“添加”。
双因素 Ssh 指南 14 添加新密钥

当您通过 SSH 连接到您的远程计算机时,您将看到对验证密钥的请求。

双因素 Ssh 指南 15 双因素登录示例

笔记:双因素身份验证仅适用于基于密码的登录。 如果您已经在 SSH 会话中使用公钥/私钥,它将绕过双因素身份验证并直接让您登录。 另外,查看更多保护 SSH 服务器的方法。

经常问的问题

我正在使用 Yubikey。 我还能在 SSH 中使用双因素身份验证吗?

不可以。Google 身份验证模块仅适用于标准 SSH 密码登录。 与设置公共 SSH 密钥类似,无法将此特定模块与其他外部双因素解决方案(例如 Yubikey)一起使用。

是否可以在不同的手机上使用相同的身份验证密钥?

是的。 只要您拥有密钥或二维码,就可以轻松地使用带有 Google 身份验证器的不同手机。 但是,在将旧设备导入新设备之前,您需要确保已完全删除旧设备上的身份验证密钥,因为任何获得旧设备访问权限的不良行为者都能够绕过您的双因素挑战。

您可以通过 SSH 使用不同的双因素身份验证应用程序吗?

是的。 虽然 libpam 模块的开发人员专门将其设计为与 Google Authenticator 一起使用,但您仍然可以将其与其他身份验证应用程序一起使用,因为双因素密钥的格式在不同的实现中通常是相同的。

图片来源: 不飞溅. Ramces Red 的所有更改和屏幕截图。

订阅我们的新闻!

我们最新的教程直接发送到您的收件箱

注册所有时事通讯。 注册即表示您同意我们的隐私政策,欧洲用户同意数据传输政策。 我们不会共享您的数据,您可以随时取消订阅。 订阅