给 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

image.png

  1. 修改 SSH 配置

编辑 SSH 配置文件

vi /etc/ssh/sshd_config

确保以下行被设置为 yes

ChallengeResponseAuthentication yes
UsePAM yes

保存并退出

  1. Google Authenticator 初始化

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

google-authenticator

在这里插入图片描述

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

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

image.png

  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 生成的二维码扫描或手动输入密钥
添加成功后,此验证码会动态刷新
6edff3f2-7a09-4605-8e95-07c91a56f9e9.jpg

  1. 登录验证

通过以上的步骤,你已成功为 Linux SSH 添加了 Google Authenticator 双因素认证。
后续除了输入用户密码外,还需要输入动态码进行验证 SSH 登录验证
在这里插入图片描述
image.png
image.png
image.png

终端登录

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/625357.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国科大软件安全原理期末复习笔记

1 软件安全总论 1.软件的三大特性:复杂性、互连性、可扩展性; 2.基本概念:缺陷、漏洞、风险 缺陷(bug):软件在设计和实现上的错误;漏洞(vulnerability):漏洞…

解决虚拟机字体太小的问题

在win11中,安装VMWare软件后,创建好虚拟机,打开终端后,发现终端里显示的字体太小,不方便使用,因此需要修改。 1、打开终端 2、输入"gsettings set org.gnome.desktop.interface text-scaling-factor…

代码随想录算法训练营第五十二天|300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

代码随想录算法训练营第五十二天|300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组 最长递增子序列 300.最长递增子序列 文章讲解:https://programmercarl.com/0300.%E6%9C%80%E9%95%BF%E4%B8%8A%E5%8D%87%E5%AD%90%E5%BA%8F%E5%88%97.html 题目链…

Android 13.0仿ios的hotseat效果修改hotseat样式

1.概述 在13.0系统产品rom定制化开发中,在项目需求的需要,系统原生Launcher的布局样式很一般,所以需要重新设计ui对布局样式做调整,产品在看到 ios的hotseat效果觉得特别美观,所以要仿ios一样不需要横屏铺满的效果 居中显示就行了,所以就要看hotseat的具体布局显示了 效…

【MATLAB】CEEMD+FFT+HHT组合算法

代码原理 CEEMD(集合经验模态分解)FFT(快速傅里叶变换)HHT(希尔伯特-黄变换)组合算法也是一种常见的信号处理和分析方法。这种组合算法结合了CEEMD、FFT和HHT三个步骤,可以处理非线性和非平稳信…

react中概念性总结(三)

目录 React中事件绑定函数的方法有哪些? 函数如何传递参数? 什么是重绘与回流,触发条件,如何减少回流和重绘 React 生命周期中 getDerivedStateFromProps怎么使用,怎么理解? React中路由单页面应用的优缺点都有哪些…

Vue3+Vite项目搭建

为什么选择vite而不是vue-cli: vite下一代前端开发与构建工具 vite创建的项目默认vue3 优势: 开发环境中,无需打包,可快速的冷启动 轻量快速的热重载(HMR) 真正的按需编译,不在等待整个应用…

Android中两种选择联系人方式

1.在选择联系人方式网上也有很多案例 有的说是使用ContactsContract.CommonDataKinds.Phone.CONTENT_URI也有的说是使用ContactsContract.Contacts.CONTENT_URI其实这两种方式都可以使用 只不过ContactsContract.Contacts.CONTENT_URI这种方式需要多查询一遍 一、使用Contacts…

23. 合并 K 个升序链表(递归分治)

这是我的第一个自己ak的分治题目!!!好耶!!(骄傲脸 思路参考:148. 排序链表(归并排序) /*** Definition for singly-linked list.* public class ListNode {* int v…

龙芯系统部署Elasticsearch

1.配置JDK环境 #查看是否安装jdk java -version#搜索java,结果:/usr/bin/java whereis java#(1)配置环境变量(临时有效) export JAVA_HOME/usr export PATH$PATH:$JAVA_HOME/bin#(2)配置环境变量(永久有效…

DA14531-高级应用篇-用户如何开启OTA服务

文章目录 1. OTA相关文件2.OTA宏定义列表3.OTA主要函数接口4.OTA具体实施步骤5.总结1. OTA相关文件 1)app_suotar_task.c和app_suotar_task.h 2)app_suotar.c和app_suotar.h 2.OTA宏定义列表 宏定义注解CFG_PRF_SUOTAR用户开启SOTA功能BLE_SUOTA_RECEIVERSOTA功能服务CFG_S…

把树状数组在页面显示成‘/‘/‘形式,并搜索想要的值

大概思路 在Vue中,若要将树状数组以类似于文件路径的形式(即“/”分隔)显示在页面上,可以按照以下步骤操作: 首先,假设您有一个树状数组,其结构可能如下所示: const treeData [{…

浅谈专项测试之弱网络测试

一.弱网络测试背景 移动端产品的使用并非完全都是在流畅的wifi环境,大部分用户主要使用4G,3G,2G等网络,另外因为移动端产品使用的场景多变,如进公交,上地铁,坐电梯,使得弱网测试显得尤为重要。考…

QT-JSON相关API/QJsonDocument/QJsonObject

QJsonObject类的相关操作 格式化排版创建JSON对象,使用字符串创建JSON对象,使用标准JSON对象获取JSON对象中的值,非数组获取JSON对象中的值,数组 格式化排版 下面的代码将一个符合JSON格式的字符串,格式化成具有缩进格…

HCIA基础知识

IP地址、静态路由、动态路由、交换机 OSPF RIP DHCP VLAN ACL NAT OSI TCP/IP UDP TCP 三次握手,四次挥手,报头 什么是网络? 由网络连接设备通过传输介质将网络终端设备连接起来,进行资源共享、信息传递的平台。 OSI七…

【C】函数指针 int (*addPtr)(int, int);

目录 函数指针1)定义2)声明和赋值3)通过函数指针调用函数4)用途:函数指针作为函数参数5)函数名和函数指针6)复杂一点的例子 函数指针 1)定义 在C语言中,函数指针是指向…

智慧校园云桌面解决方案应用场景

​​​​​​教师办公解决方案 教师办公桌面现状 大多数学校一位教师配置一台个人计算机,实际上每位教师平时会使用到的计算机资源不超过15-20%,因此多数时间个人计算机都是处在闲置状态。教师常用的办公用机一般都使用台式机,所有的数据都存放在本地(“信息孤点”),根…

如何购买腾讯云服务器?图文教程超详细

腾讯云服务器购买流程很简单,有两种购买方式,直接在官方活动上购买比较划算,在云服务器CVM或轻量应用服务器页面自定义购买价格比较贵,但是自定义购买云服务器CPU内存带宽配置选择范围广,活动上购买只能选择固定的活动…

​MyBatisPlus的批量插入方法saveBatch时速度缓慢​

一、场景描述 项目组在使用MyBatisPlus的批量插入方法saveBatch时速度缓慢,插入1w条数据,需要近1分钟的时间。 二、解决方案 解决方案很简单,在数据库配置的uri后面加上下面这个属性即可: urlxxxxxxxxxxxxxxxxxxxxxx?rewriteB…

2024年学鸿蒙开发就业前景怎么样?

随着科技的不断进步,鸿蒙系统作为华为自主研发的操作系统,逐渐引起了人们的关注。 2024年,鸿蒙开发就业前景如何? 对于那些对鸿蒙开发感兴趣并希望在这一领域寻找职业发展的人来说,这是一个非常重要的问题。 首先&a…