SSH 密钥身份验证和管理

安全外壳协议(Security Shell Protocol)是一种应用于计算机网络的安全通信协议,其提供的服务可用于保护网络上的连接和数据传输安全性,其核心思想是为网络上的两台计算机之间搭建一个安全的外壳,以保护数据传输的安全性。

安全外壳协议的工作原理是,它在网络两端的两台计算机间搭建一个安全的外壳,用以保护传输数据的安全性,此外,它还会检验发送数据的完整性、实现发送数据的加密,并监测保护传输连接。

安全外壳协议主要由三个重要部分构成:加密技术、身份认证技术、认证机制。

  • 加密技术:是安全外壳协议的重要组成部分,它可以有效保护发送数据的安全性,它可以把数据加密成一种特殊的代码,以阻止非法者获取敏感信息。
  • 身份认证技术:是安全外壳协议的另一个重要组成部分,它的用途是验证被授权用户的身份,确保只有知道被认证的实体才能訪問系统中的数据和系统资源。
  • 认证机制:是安全外壳协议的重要组成部分,它用于检验对密码和身份认证技术的使用,以确保传输连接和数据传输得到保护。

安全外壳协议被广泛应用于网络安全领域,用来保护网络连接和数据传输的安全性,以防止非法者获取系统中的数据和资源,它具有安全性高、功能强大的特点,能够有效的保护各类网络环境。此外,它还可以用来检查密码和身份认证技术的使用,以确保传输连接和数据传输安全。

什么是 SSH(安全外壳)密钥

SSH(安全外壳)密钥是 SSH 协议中的身份验证凭据。从技术上讲,它们是负责加密的加密密钥,但在功能上,它们的工作方式与密码非常相似,在企业内部,SSH 密钥主要用于授予对远程系统的安全访问权限。基于密钥的身份验证(通常称为公钥身份验证)使用一对密钥(公钥和私钥)对远程设备上的用户进行身份验证。

  • 公钥或授权密钥:负责向访问远程系统的用户授予登录访问权限。人们可以将授权密钥想象成锁,向拥有正确密钥(在本例中为相应私钥)的人授予访问权限。授权密钥是为每个用户帐户单独配置的,通常存在于用户主目录的 .ssh/authorized_keys 文件中。
  • 私钥或身份密钥:允许用户在 SSH 服务器上对自己进行身份验证。私钥类似于真正的密钥,当匹配时,可以打开一个或多个锁。与公钥相反,私钥需要在安全的地方进行保护,否则它们最终可能会落入坏人之手,从而导致特权被滥用。

什么是 SSH 密钥身份验证过程

基于SSH的公钥身份验证是通过生成一对不同的密钥(公钥和私钥)来实现的,以便与远程系统建立连接。在远程计算机上进行身份验证的用户需要拥有私钥,而公钥应放置在用户要连接到的目标系统中。

  • 生成 SSH 身份验证密钥:登录到要从中建立远程连接的服务器。使用 SSH 密钥生成工具(如 PuTTYgen)生成密钥对。您还可以在创建密钥对时添加可选密码,以提供额外的安全层。
  • 将公钥复制到远程系统:生成密钥对后,将公钥传输到目标远程系统。确保公钥文件位于所需远程服务器的 ~/.ssh/authorized_keys 目录下。在这里,您必须提供在上一步中创建的密码。
  • 启动远程 SSH 会话:将公钥部署到目标服务器后,可以从系统中打开与这些服务器的 SSH 连接。

以下是 SSH 密钥身份验证过程在后台发生的方式。

  • 客户端首先将 ID 发送到它希望在远程服务器中进行身份验证的密钥对。
  • 服务器检查客户端尝试登录的帐户中是否有具有相同密钥 ID 的公钥。
  • 如果找到匹配的公钥,服务器会生成一个随机数,使用公钥对其进行加密,并将其发送到客户端。
  • 客户端使用私钥解密消息,并在会话密钥的帮助下计算消息的 MD5 哈希值。
  • 然后,客户端对哈希值进行加密,并将其发送到服务器。
  • 同时,服务器还计算发送到客户端的消息的 MD5 哈希值(借助会话密钥)。如果这两个值匹配,则证明客户端拥有相应的私钥,并且客户端在服务器上进行了身份验证。

在这里插入图片描述

在开始 SSH 密钥身份验证过程之前,请确保客户端和服务器都安装了工作版本的 SSH,基于密钥的身份验证的一大优点是,如果实施得当,它可以极大地简化身份验证过程,并将其安全性提高数倍。

为什么需要保护 SSH 密钥

尽管人们对 SSH 密钥管理不善和风险产生了认识,但大多数企业都遵循分散的密钥创建和使用方法,随着时间推移,这会导致密钥激增,而每个密钥提供的访问范围的可见性大大降低。SSH 密钥管理不善会以多种方式给企业带来麻烦,包括:

  • 外部攻击:当攻击者获得对孤立的 SSH 密钥的访问权限时,他们能够建立立足点并轻松地在网络内移动,因为基于密钥的网络是紧密交织在一起的。然后,攻击者可以将其权限提升为 root 访问权限,从关键任务系统中窃取敏感数据,并创建后门进行永久访问。
  • 内部攻击:SSH 密钥管理不善也是导致内部攻击的主要原因,心怀不满的员工或恶意的第三方供应商或承包商可以访问对特权系统进行身份验证的密钥,并最终掠夺敏感数据。

关于这些攻击的一件棘手的事情是,由于 SSH 密钥很少轮换,它们将继续留在坏人手中,直到它们以某种方式被发现并终止其访问。

  • 不合规风险:SSH 密钥管理对于企业遵守各种强制性行业法规(如 SOX、FISMA、PCI 和 HIPAA)也至关重要。未能整合适当的 SSH 密钥管理系统可能会导致公司违反合规要求,并付出巨大的代价。

SSH 密钥管理

SSH 密钥管理是保护和自动化分布在企业中的 SSH 密钥生命周期的过程,从创建到将其部署到必要的端点、启动远程会话、监控密钥用户映射、执行密钥轮换以及定期删除未使用或不需要的密钥。SSH 密钥属于始终管理不足的关键数字资产类别。实施定义明确的管理流程有助于企业全面了解其 SSH 环境,并防止因未经授权访问 SSH 密钥而导致的权限滥用。

以下是一些步骤,可帮助 SSH 密钥管理:

  • 发现和整合:管理 SSH 密钥的第一步是发现网络中的现有密钥,并将它们整合到一个集中式存储库中。
  • 映射信任关系:将所有 SSH 密钥收集到一个位置后,您必须跟踪现有的信任关系,以清楚地了解每个密钥授予的访问范围,然后,您必须制定密钥用户映射,这将帮助您确定网络中对特权帐户具有 root 访问权限的用户数量。
  • 创建和部署新的 SSH 密钥对:现在,您可以完全了解 SSH 环境,请扫描并删除不再使用的 SSH 密钥,此处的最佳实践方法是通过删除与网络中各种用户帐户关联的所有 SSH 密钥来重新开始,并将其替换为新创建的密钥对。
  • 简化 SSH 密钥创建和部署:对于密钥生成,强烈建议您通过管理集中式框架来简化该过程,该框架仅允许具有特定权限的用户创建密钥并将其部署到网络中的系统,这样一来,您就可以在组织内的信任关系中占据上风,并且能够防止 SSH 密钥扩散。
  • 实施精细的访问控制:将新的密钥对部署到目标系统后,必须根据用户角色定义每个密钥的权限,即对可以使用密钥的主机的限制,以及密钥可以执行的命令。
  • 强制执行定期 SSH 密钥轮换:SSH 密钥轮换是抛弃现有的 SSH 密钥用户关联,不时部署新密钥对的做法,以应对 SSH 密钥泄露的不幸事件,授权密钥(放置在目标系统上)和身份密钥都需要定期轮换,以避免潜在的权限滥用。
  • 审核所有用户活动并生成预制报告:设置防篡改审核机制,以跟踪涉及 SSH 密钥的所有用户活动并生成分类报告,这将提高所收集数据的敏感性和可读性,并帮助管理员做出明智的业务决策。

Key Manager Plus 是基于Web的SSH密钥和SSL证书管理解决方案,可帮助您从单一管理平台发现、整合、创建、部署、轮换和跟踪SSH密钥。它是一个一体化解决方案,可为 IT 管理员提供对其 SSH 环境的完全可见性和控制,使管理无忧无虑,并帮助他们预防违规和合规性问题。

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

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

相关文章

Python中的装饰器

顾名思义,函数装饰器就是对这个函数进行了装饰,比如在函数的前后进行日志打印等。在Python中,装饰器是一种特殊的语法,用于简化函数或方法的定义和调用。装饰器允许你在不修改原始函数代码的情况下,通过在其上应用装饰…

Ubuntu本地快速搭建web小游戏网站,公网用户远程访问

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,…

css文本溢出处理——单行、多行

日常开发中,经常会遇到需要展示的文本过长,这种情况下,为了提高用户的使用体验,最常见的处理方式就是把溢出的文本显示成省略号。 处理文本的溢出的方式:1)单行文本溢出; 2)多行文本…

TIA Portal 各版本安装指南

TIA Portal下载链接 https://pan.baidu.com/s/1Jat53vGz1rXfLm7kTldz-Q?pwd0531 1.鼠标右击【TIA portal V19 (64bit)】压缩包(先点击“显示更多选项”)选择【解压到 TIA portal V19 (64bit)】。 2.打开解压后的文件夹,鼠标右击【NoRestart…

Hive实战:分科汇总求月考平均分

文章目录 一、实战概述二、提出任务三、完成任务(一)准备数据1、在虚拟机上创建文本文件2、上传文件到HDFS指定目录 (二)实现步骤1、启动Hive Metastore服务2、启动Hive客户端3、创建分区的学生成绩表4、按分区加载数据5、查看分区…

系统学英语 — 音标音节 — 能读就能写

目录 文章目录 目录概览12 个单元音8 个双元音28 个辅音音节 概览 音标发音器:https://en-yinbiao.xiao84.com/biao/ 12 个单元音 序号发音音标助记字母组合备注1拖长音 前元音[i:]eate、ea、ee、ie2短促音 前元音[i]bige、i、y3拖长音 后元音[a:]aska、ar4短促…

完善 Golang Gin 框架的静态中间件:Gin-Static

Gin 是 Golang 生态中目前最受用户欢迎和关注的 Web 框架,但是生态中的 Static 中间件使用起来却一直很不顺手。 所以,我顺手改了它,然后把这个改良版开源了。 写在前面 Gin-static 的改良版,我开源在了 soulteary/gin-static&a…

【开源】基于JAVA语言的服装店库存管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 角色管理模块2.3 服装档案模块2.4 服装入库模块2.5 服装出库模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 角色表3.2.2 服装档案表3.2.3 服装入库表3.2.4 服装出库表 四、系统展示五、核心代码5.…

STM32之模拟IIC总线控制SHT20温湿度芯片

一、IIC总线概述 1、IIC总线介绍 I2C (Inter-Integrated Circuit)总线产生于在80年代, 由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备, 最初为音频和视频设备开发。I2C总线两线制包括:串行数据SDA&#xff08…

Rustdesk打开Win10 下客户端下面服务不会自启,显示服务未运行

环境: Rustdesk1.19 问题描述: Rustdesk打开Win10 下客户端下面服务不会自启,显示服务未运行 解决方案: 1.查看源代码 pub async fn start_all() {crate::hbbs_http::sync::start();let mut nat_tested = false;check_zombie()

银行十大主题域

当事人、产品、协议、事件、资产、财务、机构、地域、营销、渠道 便于记忆: 银行是一个企业,同时也是一个机构,涉及企业机构就会有资产,财务的存在,银行有自己的产品(信用卡,黄金,期…

【小沐学CAD】开源Assimp库导入三维模型(C++、Python)

文章目录 1、简介2、下载编译3、代码测试3.1 C3.2 pyassimp(Python) 结语 1、简介 https://github.com/assimp/assimp Open Asset Import Library 是一个库,用于将各种 3D 文件格式加载为共享的内存格式。它支持 40 多种用于导入的文件格式和…

PDF.js实现搜索多个不同的关键词高亮显示效果

static\PDF\web\viewer.js 392行左右 // 自定义搜索关键词---------------------------------------- this.searchKeywords = keyword => {if (typeof PDFViewerApplication !== undefined) {PDFViewerApplication.eventBus.dispatch(find, {query: keyword,caseSensitive:…

AQS 抽象队列同步器

AQS AQS (抽象队列同步器): AbstractQueuedSynchronizer 是什么 来自jdk1.5,是用来实现锁或者其他同步器组件的公共基础部分的抽象实现,是重量级基础框架以及JUC的基石,主要用于解决锁分配给谁的问题整体…

互联网演进历程:从“全球等待”到“全球智慧”的技术革新与商业变革

文章目录 一、导言二、World Wide Wait (全球等待)阶段1. 技术角度2. 用户体验3. 企业收益4. 教育影响 三、World Wide Web (万维网)阶段1. 技术角度2. 用户体验3. 企业收益4. 教育影响 四、World Wide Wisdom (全球智慧)阶段1. 技术角度2. 用户体验3. 企业收益4. 教育影响 五、…

MySQL——用户管理

目录 一.用户管理 二.用户 1.用户信息 2.创建用户 3.删除用户 4. 修改用户密码 三.数据库的权限 1.给用户授权 2.回收权限 一.用户管理 如果我们只能使用root用户,root的权限非常大,这样存在安全隐患。这时,就需要使用MySQL的用户管理&#xff…

苦学golang半年,写了一款web服务器

苦学golang半年,写了一款web服务器 文章目录 苦学golang半年,写了一款web服务器example 项目地址:https://github.com/fengyuan-liang/jet-web-fasthttp 可以的话,请star支持一下🙂 苦学golang半年,写了一款…

java基于vue的音乐播放器的设计与实现论文

摘 要 当下,如果还依然使用纸质文档来记录并且管理相关信息,可能会出现很多问题,比如原始文件的丢失,因为采用纸质文档,很容易受潮或者怕火,不容易备份,需要花费大量的人员和资金来管理用纸质文…

【Spring Cloud】Feign组件的使用及参数的传递

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Spring Cloud》。🎯🎯 &am…

浅析观察者模式在Java中的应用

观察者模式(Observer Design Pattern),也叫做发布订阅模式(Publish-Subscribe Design Pattern)、模型-视图(Model-View)模式、源-监听器(Source-Listener)模式、从属者(D…