SSH 密钥身份验证和管理

news2025/1/12 21:06:48

安全外壳协议(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.coloradmin.cn/o/1361552.html

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

相关文章

场景识别与词袋模型

目录 1. 任务要求2. 数据集3. 实现算法3.1 目标实现3.2 Tiny images representation3.3 SIFT特征词袋表示3.4 相关算法 4. 实验结果4.1 基础结果展示4.2 算法超参的影响4.2.1 Tiny images size4.2.2 Vocabulary size 4.3 其他结果 5. 源代码 1. 任务要求 输入:给定…

抖音字幕视频怎么做能滚动 抖音个性字幕怎么做 抖音短视频用什么软件剪辑

不管是抖音短视频,还是其他影视网站的影视剧,字幕基本都是必不可少的,字幕本身就能加强观众对视频的理解,而且像一些滚动字幕,会更加吸引观众的注意力,那抖音字幕视频怎么做能滚动?抖音个性字幕…

Yokowaga横河WT3000高精度功率分析仪

Yokogawa WT3000高精度功率分析仪,作为理想的测量解决方案,其精准度和卓越的性能使其在多 种应用场景中都表现出色。这款仪表是工程研发和产品效率测试的理想选择,尤其在变频器、电机 驱动器、照明系统和电子镇流器、UPS系统、飞机电力系统、…

2023版本QT学习记录 -11- 多线程的使用(QT的方式)

———————多线程的使用(QT方式)——————— 🎄效果演示 两个线程都输出一些调试信息 🎄创建多线程的流程 🎄头文件 #include "qthread.h"🎄利用多态重写任务函数 class rlthread1 : public QThread {Q_OBJE…

Erupt即开即用的后台管理系统【告别前端代码】

一、引子 【零前端代码,几行Java注解,搞定后台管理系统】 如果只是自己内部公司使用的话,大多数功能都可以满足,剩下的就是自己添砖加瓦了。 我用这个主要是简单快捷,10分钟搭建一个简易的后台管理系统。 二、基本…

设计模式之外观模式【结构型模式】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档> 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某…

MYSQL多种提权方式

🐙MYSQL-提权条件 - 数据库的最高权限用户的密码 - secure-file-priv没进行目录限制 - 拿下了网站的权限(通过webshell或者其他方式) - 获取到了数据库的账号密码 (获取密码:D:/phpstudy/MySQL/data/mysql/user.MYD…

【论文阅读笔记】Mip-NeRF 360: Unbounded Anti-Aliased Neural Radiance Fields

目录 概述摘要引言参数化效率歧义性 mip-NeRF场景和光线参数化从粗到细的在线蒸馏基于区间的模型的正则化实现细节实验限制总结:附录退火膨胀采样背景颜色 paper:https://arxiv.org/abs/2111.12077 code:https://github.com/google-research/…

实战经验分享,Python 连接 Oracle 踩坑实录

最近的一个测试任务需要测试 oracle 同步 hive 数据库的性能,那就需要对 oracle 数据库灌注测试数据。我就又打开了我的IDE,准备把我之前一下可以灌50w数据到 MySQL 的代码,改一改,直接用。 因为我在网上看到,语法上也…

PHP 基础编程 1

文章目录 前后端交互尝试php简介php版本php 基础语法php的变量前后端交互 - 计算器体验php数据类型php的常量和变量的区别php的运算符算数运算符自增自减比较运算符赋值运算符逻辑运算 php的控制结构ifelseelse if 前后端交互尝试 前端编程语言:JS (Java…

Linux驱动开发(1)-最简单的字符设备驱动开发例子

1.简介 字符设备驱动:按照字节流进行读写操作的设备,例如点灯、按键、IIC、SPI、LCD。 Linux系统中一切皆文件,驱动加载成功,就会在/dev目录生成文件,对文件操作,则可实现对硬件操作。应用程序运行在用户…

奋楫扬帆,奔赴新程 | 2023 年图扑大事记回顾,与您携手共迎 2024

2023.01 工信部公示了 2022 年度智能制造示范工厂揭榜单位和优秀场景名单。图扑软件和上海洲邦合作建设的宁波甬友数字孪生工厂被评为优秀场景,全国共有 369 个智能制造典型场景入选。 2023.01 在第十一届中国创新创业大赛全国赛(新一代信息技术&#…

leetcode12 整数转罗马数字

题目描述:给定一个整数,将其转换为罗马数字。罗马数字由七个字符表示:I(1)、V(5)、X(10)、L(50)、C(100)、D(5…

100行代码搭建一个IO泄露监测框架

大家好,最近由于项目原因,对IO资源泄漏的监测进行了一番调研深入了解,发现IO泄漏监测框架实现成本比较低,效果很显著;同时由于IO监测涉及到反射,还了解到了通过一种巧妙的方式实现Android P以上非公开api的…

locust 快速入门--一次接口压测

背景: 使用locust,借助webUI,完成一次接口压测 实现步骤: 完成locust环境配置 准备一个locustfile(current_limiting_test.py) from locust import HttpUser, task, events from locust.env import Envi…

(Python + Selenium4)Web自动化测试自学Day1

目录 文章声明⭐⭐⭐让我们开始今天的学习吧!自动打开Chrome浏览器实现自动搜索元素定位常用的元素定位方式By.IDBy.CLASS_NAMEBy.TAG_NAMEBy.NAMEBy.LINK_TEXTBy.PARTIAL_LINK_TEXTBy.CSS_SELECTOR根据id定位根据class定位根据属性定位组合定位 By.XPATH 文章声明⭐…

Spring中的工厂类ApplicationContext和BeanFactory

1.ApplicationContext ApplicationContext的实现类,如下图 ClassPathXmlApplicationContext:加载类路径下 Spring 的配置文件 FileSystemXmlApplicationContext:加载本地磁盘下 Spring 的配置文件 ApplicationContext由BeanFactory派生而…

文件归类妙招:用关键字替换改扩展名方法,文件重命名技巧

在日常工作中,文件的数量会随着时间的推移不断增加。如果文件没有得到适当的归类和整理,就会导致很难找到所需的文件。所以文件归类是非常重要的任务。现在来看云炫文件管理器一些实用的文件归类妙招:用关键字替换修改文件扩展名的方法&#…

【计算机毕业设计】SSM在线化妆品网站

项目介绍 本项目为前后台项目,前台为普通用户登录,后台为管理员登录; 管理员角色包含以下功能: 管理员登录,分类管理,产品管理,用户管理,订单管理等功能。 用户角色包含以下功能: 提交订单,用户登录,用户首页,查看…

程序性能优化全能手册

本文聊一个程序员都会关注的问题:性能。 当大家谈到“性能”时,你首先想到的会是什么? 是每次请求需要多长时间才能返回? 是每秒钟能够处理多少次请求? 还是程序的CPU和内存使用率高不高? 这些问题基本上…