给 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三个步骤,可以处理非线性和非平稳信…

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…

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

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

HCIA基础知识

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

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

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

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

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

[渗透测试学习] Hospital - HackTheBox

文章目录 信息搜集getshell提权信息搜集 nmap扫描一下端口 发现8080端口和443端口有http服务 然后发现3389端口是启用了ms-wbt-server服务 在对443端口的扫描没有收获,并且只有邮箱登录界面无法注册 接着看向8080端口,我们随便注册用户登录后发现有文件上传功能 getshell …

【SpringMVC】—— 如何配置使用SpringMVC(详细步骤)

目录 引言 使用 1、新建模块 2、导入坐标 3、创建SpringMVC控制器类 4、初始化SpringMVC环境 5、初始化Servlet容器,加载SpringMVC环境 6、配置运行 引言 SpringMVC是一种基于Java实现MVC模型的轻量级Web框架,SpringMVC是表现层(web层)的框架,也…

.Net6使用SignalR实现前后端实时通信

代码部分 后端代码 (Asp.net core web api,用的.net6)Program.cs 代码运行逻辑: ​1. 通过 WebApplication.CreateBuilder(args) 创建一个 ASP.NET Core 应用程序建造器。 2. 使用 builder.Services.AddControllers() 添加 MVC 控…

两周掌握Vue3(五):自定义指令、路由、ajax

文章目录 一、自定义指令1.创建和使用自定义指令2.钩子函数3.使用参数 二、路由1.创建一个router实例2.在components目录中创建组件3.将路由实例挂载到应用4.使用路由 三、Ajax 代码仓库:跳转 当前分支:05 一、自定义指令 自定义指令是Vue.js框架提供的…

基于Springboot的善筹网(众筹网-有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的善筹网(众筹网-有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring S…

Vue入门七(Vuex的使用|Vue-router|LocalStorage与SessionStorage和cookie的使用)

文章目录 一、Vuex1)理解vuex2)优点3)何时使用?4)使用步骤① 安装vuex② 注册vuex③ 引用vuex④ 创建仓库Store五个模块介绍 5)基本使用 二、Vue-router三、LocalStorage与SessionStorage、cookie的使用 一…

ChatGPT Plus 经验分享:是否值得花钱升级?

ChatGPT Plus 经验分享:是否值得花钱升级? 五星上将麦克阿瑟曾经说过:“在有钱与没钱面前,我选择了or” ChatGPT 的每月订阅方案- ChatGPT Plus 已经推出一段时间了,目前的费用是$20 USD / 月(约TWD 610 / 月)。 Open…

Spirng MVC见解1

1. SpringMVC概述 1.1 MVC介绍 MVC是一种设计模式,将软件按照模型、视图、控制器来划分: M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为数据承载Bean&#x…

mybatis基本注解、增删改查、结果集映射、一对一、一对多

mybatis注解 基本注解新增删除修改查询 结果映射注解Results结果映射一对一映射一对多映射 基本注解 新增 功能:Insert完成新增操作,类似配置文件的 元素; 说明:新增时所用的参数取值是接口方法的入参,可以是对象&a…