面试官:图解SSH实现原理?

SSH是一种协议标准,它的主要目的是实现远程登录和提供安全网络服务。它的实现有很多种,最常用的就是开源openssh。

对称加密和非对称加密

在讲解SSH实现原理之前,我们先来了解下加密方式,我们都知道为了数据的安全,数据在互联网上传输肯定是要加密。那加密又要分为两种加密方式:

  • 对称加密(秘钥加密)
  • 非对称加密(公钥加密)

对称加密,就是加密和解密都是使用同一套秘钥。看下图所示:

服务端和客户端的交互过程如下图:

对称加密的加密强度很高,但是这有一个很大的问题。就是:如何保证秘钥A的安全?当客户端的数量非常大的时候,如何保证秘钥的安全?一旦秘钥泄漏出去,后果不堪设想。用户的安全就没有任何保障。所以非对称加密的出现就为了弥补这一点。

非对称加密有两个秘钥:“私钥”和“公钥”。公钥加密后的密文,只能通过对应的私钥进行解密。而通过公钥推理出私钥的可能性微乎其微。下图展示的是基本原理:

上图在实际的使用中存在一个问题,就是客户端需要知道服务端的公钥,不然没法加密。所以需要服务端告知客户端公钥的一个过程。如下图:

  • 服务端收到客户端的登录请求,服务端把公钥发送给客户端
  • 客户端用这个公钥,对密码加密
  • 客户端将加密后的密码发送给服务端
  • 服务端用私钥解密,验证OK
  • 返回验证结果

私钥是服务端独有,这就保证了客户端的登录信息即使在网络传输过程中被窃据,也没有私钥进行解密,保证了数据的安全性,这充分利用了非对称加密的特性。

你觉得这样就安全了吗?

上述图中有一个漏洞:客户端如何保证接受到的公钥就是目标服务端的?如果攻击者截获了客户端的请求,发送自己的公钥,那客户端用这个公钥加密的密码,就能被攻击者用自己的私钥解密。这不是一个很大的漏洞吗?

SSH如何做的?

SSH有两种方式:

  • 基于口令的认证;
  • 基于公钥认证

1. 基于口令的认证

从上面可以知道,我们的主要要解决的是“如何对服务端的公钥进行验证”,客户端只要对公钥进行确认下就OK了。通常在第一次登录的时候,系统会出现下面提示信息:

  1. he authenticity of host 'ssh-server.example.com (12.18.429.21)' can't be established. 
  2. RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d. 
  3. Are you sure you want to continue connecting (yes/no)?  

上面的信息说的是:无法确认主机ssh-server.example.com(12.18.429.21)的真实性,不过知道它的公钥指纹,是否继续连接?

之所以用fingerprint代替key,主要是key过于长(RSA算法生成的公钥有1024位),很难直接比较。所以,对公钥进行hash生成一个128位的指纹,这样就方便比较了。

输入yes后,该host已被确认,并被追加到文件known_hosts中,然后就需要输入密码。

2. 基于公钥认证

  • 客户端与服务端协商产生会话密钥;
  • 客户端会向服务端发送一个登录请求(如:[email protected]),发送的信息包括用户名root和root的公钥指纹,且所有信息都是通过会话密钥加密过的。
  • 服务端通过会话密钥解密客户端发送的数据得到请求登录的用户名root和root的公钥指纹,然后读取root用户家目录下的所有公钥数据(/root/.ssh/autorized_keys文件中),并分别通过单向加密算法获取各公钥的数据指纹与客户端发送过来的数据指纹做对比,从而找到客户端上的root用户的公钥;
  • 服务端使用找到的客户端的公钥对一个随机数进行加密发送发送给客户端;
  • 客户端使用私钥对服务端发送的随机数密文进行解密,然后把解密结果发送给服务端;
  • 服务端验证客户端解密后的数据与自己发送的数据一致,则对客户端身份验证成功;

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/123991.html<

(0)
运维的头像运维
上一篇2025-02-23 01:56
下一篇 2025-02-23 01:57

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注