给 Linux 主机添加 SSH 双因子认证

GitHub:https://github.com/google/google-authenticator-android
在信息时代,服务器安全愈发成为首要任务。Linux 主机通过 ssh 方式连接,当存在弱密码的情况下,通过暴力破解的方式会很容易就被攻破了,本文将向你展示如何通过 Google Authenticator 这一强大的双因素认证工具,当你 SSH 登录主机输入用户密码后,还需要通过手机客户端输入 Google 动态验证码才能正常登录,通过真实案例教你配置。赶快转发给你的小伙伴用起来~
:::

  1. 同步 Linux 服务器时钟

同步 linux 时钟,默认动态验证码在 30 秒内有效,由于客户端和服务器可能会存在时间差,建议先同步时钟,防止和手机时间存在时间差导致无法登录

ntpdate pool.ntp.org

  1. Linux 主机安装 Google Authenticator

本文使用 CentOS7 系统实验,在终端执行以下命令,为你的 Linux 系统安装 Google Authenticator 插件

yum install epel-release -y
yum install google-authenticator -y

给 Linux 主机添加 SSH 双因子认证_第1张图片

  1. 修改 SSH 配置

编辑 SSH 配置文件

vi /etc/ssh/sshd_config

确保以下行被设置为 yes

ChallengeResponseAuthentication yes
UsePAM yes

保存并退出

  1. Google Authenticator 初始化

执行以下命令初始配置,为指定用户启动 Google Authenticator 的配置

google-authenticator

给 Linux 主机添加 SSH 双因子认证_第2张图片

根据提示回答问题,最终将生成一个二维码和一组备用验证码
:::info
访问上面生成的 URL(需要科学上网)
然后使用 **Google 身份验证 **扫码添加
:::

Google 身份验证 APP:
在手机应用市场搜索:身份验证器 或 Authenticator 并安装 APP 或者 也可以使用 微信小程序 MinaOTP

给 Linux 主机添加 SSH 双因子认证_第3张图片

  1. 调整 PAM 模块

编辑 PAM 配置文件
引入 Google Authenticator 模块 vi 编辑 /etc/pam.d/sshd 配置,
在文件末尾添加以下行

vim /etc/pam.d/sshd
auth required pam_google_authenticator.so

保存并退出

  1. 重启 SSH 服务

为了让新配置生效,别忘了重新启动 SSH 服务

systemctl restart sshd
  1. 安装 Google 身份验证

应用商店下载并安装 Google Authenticator 或类似的身份验证应用,
然后配置 Authenticator App,打开应用,选择添加新的身份验证令牌。
使用步骤 4 生成的二维码扫描或手动输入密钥
添加成功后,此验证码会动态刷新
给 Linux 主机添加 SSH 双因子认证_第4张图片

  1. 登录验证

通过以上的步骤,你已成功为 Linux SSH 添加了 Google Authenticator 双因素认证。
后续除了输入用户密码外,还需要输入动态码进行验证 SSH 登录验证
给 Linux 主机添加 SSH 双因子认证_第5张图片
给 Linux 主机添加 SSH 双因子认证_第6张图片
给 Linux 主机添加 SSH 双因子认证_第7张图片
给 Linux 主机添加 SSH 双因子认证_第8张图片

终端登录

[root@blog .ssh] ssh [email protected]
Password: 
Verification code: 
Last login: Tue Dec  5 23:33:20 2023 from 113.57.110.120

通过上面可以看到无论是使用终端工具还是命令行,都加上了动态码
赶快将你的 Linux 安排上,让主机安全无懈可击!

你可能感兴趣的:(开源项目,linux,运维)