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.hqwc.cn/news/324729.html

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

相关文章

54、Softmax 分类器以及它的底层原理

下面开始介绍最后一个算法softmax。在前面介绍全连接算法或其他文章中,或多或少也提到了softmax。 在分类网络里,softmax的作用主要是将模型的原始输出映射到 0~1之间的概率分布。很多时候对于我们初学者而言,只知道softmax可以做概率映射,但并不了解它内部的原理是如何完…

【28】Kotlin语法进阶——使用协程编写高效的并发程序

提示:此文章仅作为本人记录日常学习使用,若有存在错误或者不严谨得地方欢迎指正。 文章目录 一、Kotlin中的协程1.1 协程的基本用法1.1.1协程与协程作用域1.1.2 使用launch函数创建子协程1.1.3 通过suspend关键声明挂起函数1.1.4 coroutineScope函数 1.2…

支持向量机(Support Vector Machines,SVM)

什么是机器学习 支持向量机(Support Vector Machines,SVM)是一种强大的机器学习算法,可用于解决分类和回归问题。SVM的目标是找到一个最优的超平面,以在特征空间中有效地划分不同类别的样本。 基本原理 超平面 在二…

【深度学习每日小知识】数据增强

数据增强是通过对原始数据进行各种转换和修改来人工生成附加数据的过程,旨在增加机器学习模型中训练数据的大小和多样性。这对于计算机视觉领域尤为重要,因为图像经常被用作输入数据。 计算机视觉中的数据增强 数据增强的主要目标是解决过拟合问题&…

基于Java SSM框架实现固定资产管理系统项目【项目源码+论文说明】

基于java的SSM框架实现固定资产管理系统演示 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识&a…

HarmonyOS 组件通用属性之位置设置

本文 我们来说 通用属性中的位置设置 主要是针对组件的对齐方式 布局方向 显示位置 做过WEB开发的 对流式布局应该都不陌生 就是 一行放内容 不够放就换行 我们可以先这样写 Entry Component struct Index {build() {Row() {Column() {Stack(){Text("你好")Text(&…

让人头痛事务问题到底要如何解决?

前言 正好前段时间我在公司处理过这个问题,我们当时由于项目初期时间比较紧张,为了快速完成业务功能,忽略了系统部分性能问题。项目顺利上线后,专门抽了一个迭代的时间去解决大事务问题,目前已经优化完成,并…

JDBC练习查询所有内容

MySql表代码 -- 删除tb_brand表 drop table if exists tb_brand; -- 创建tb_brand表 create table tb_brand (-- id 主键id int primary key auto_increment,-- 品牌名称brand_name varchar(20),-- 企业名称company_name varchar(20),-- 排序字段ordered int…

如何在Docker环境下安装火狐浏览器并结合内网穿透工具实现公网访问

文章目录 1. 部署Firefox2. 本地访问Firefox3. Linux安装Cpolar4. 配置Firefox公网地址5. 远程访问Firefox6. 固定Firefox公网地址7. 固定地址访问Firefox Firefox是一款免费开源的网页浏览器,由Mozilla基金会开发和维护。它是第一个成功挑战微软Internet Explorer浏…

nginx 二、配置域名

文章目录 一、配置本地域名查看虚拟机ip修改hosts文件测试域名是否配置成功 二、配置aliyun域名三、实践1.创建html2.配置nginx3.测试服务器内部测试页面测试 总结 docker中启动nginx容器完成如下操作,对于docker安装nginx可以看这篇文章 nginx 一、安装与conf浅析 …

Java集合框架深度解析-ArrayList

Java的集合框架提供了一组实现常用数据结构的类和接口。理解集合框架对于Java程序员来说至关重要,因为它们在日常编程中广泛应用。 为什么需要集合框架? 在编程中,我们经常需要存储和操作一组对象。集合框架提供了用于表示和操作对象组的通…

docker部署mysql主从复制篇

环境准备:docker服务安装,mysql镜像 配置文件方式:可以挂载目录,也可以写好配置文件,利用docker cp 到容器内,这里直接在启动镜像创建容器时候挂载目录方式服务器上配置文件内容(下图标红路径)&#xff1a…