图解 SSH 是 如何工作的?

公众号关注 「奇妙的 Linux 世界」

设为「星标」,每天带你玩转 Linux !

b1a15eef9c93b88021e497ba63ee07e3.jpeg

在计算机网络中,需要登录远程计算机。从历史上看,这是通过 Telnet(始于 20 世纪 60 年代末)和 rlogin(始于 20 世纪 80 年代)实现的。然而,这些早期的程序并不安全。SSH(Secure Shell)是为解决这些缺陷而创建的协议。它在不安全的网络上建立安全连接

SSH 采用客户端-服务器架构。客户端是指试图连接远程服务器的机器。SSH 对客户机和服务器进行身份验证。它规定了客户端和服务器如何就共享秘密达成一致,以便随后对数据包进行加密。最后,它还提供数据完整性保护。

SSH 有两个版本:SSH-1 和 SSH-2。SSH-2 由 IETF 标准化。SSH 已被广泛采用。现代操作系统都内置了 SSH 客户端。OpenSSH 是一种流行的开源实现方式。也有商业实施方案。

下面将逐步解释 SSH 的三个主要层: 传输层、验证层和连接层

d60dc613f06b46ee2ee7ae63eeaa2d43.gif

01 传输层

传输层提供加密、完整性和数据保护,确保客户端和服务器之间的通信安全。

第 1 步 - 建立 TCP 连接

客户端启动与 SSH 服务器的 TCP 连接,通常是在 22 端口。

第 2 步 - 协议版本交换

客户端和服务器交换包含各自支持的 SSH 协议版本的标识字符串。

第 3 步 - 算法协商

客户端和服务器就加密、密钥交换、MAC(消息验证码)和压缩所使用的加密算法达成一致。

第 4 步 - 密钥交换

密钥交换算法(如 Diffie-Hellman)用于安全生成共享秘密。这一过程可确保双方在不直接传输的情况下获得相同的会话密钥。

第 5 步 - 会话密钥推导

会话密钥是从共享秘密和其他交换信息中推导出来的。这些密钥用于加密和解密通信。

第 6 步 - 密码初始化

双方使用导出的会话密钥初始化各自选择的加密和 MAC 算法。

第 7 步 - 数据完整性和加密

传输层为客户端和服务器之间的所有后续通信提供数据完整性检查和加密。

02 验证层

验证层验证客户端的身份,确保只有授权用户才能访问服务器。

第 1 步 - 服务请求

客户端请求 "ssh-userauth "服务。

第 2 步 - 身份验证方法广告

服务器公布可用的身份验证方法(如密码、公钥、键盘交互)。

第 3 步 - 客户端身份验证

客户端尝试使用一种或多种可用方法进行身份验证。常见方法包括:

  • 密码验证:客户端向服务器发送密码,由服务器进行验证。

  • 公钥验证:客户端证明拥有与先前注册的公钥相对应的私钥。

  • 键盘交互式身份验证:服务器向客户端发送提示,客户端回复所需的信息(如 OTP、安全问题)。

第 4 步 - 身份验证成功/失败

如果客户端的凭据有效,服务器将允许访问。否则,客户端可尝试其他认证方法或关闭连接。

03 连接层

连接层将加密和认证通信复用为多个逻辑通道。

第 1 步 - 创建通道

客户端请求为各种类型的通信(如 shell 会话、文件传输、端口转发)打开通道。

第 2 步 - 信道请求

每个通道请求包括所需服务类型和任何附加参数等详细信息。

第 3 步 - 信道数据传输

数据通过已建立的信道传输。每个通道独立运行,允许多个服务在一个 SSH 连接上同时运行。

第 4 步 - 关闭通道

通道可以相互独立关闭,而不会影响整个 SSH 连接。关闭所有通道后,客户端即可终止 SSH 会话。

第 5 步 - 全局请求

连接层还支持全局请求,全局请求会影响整个连接而不是单个通道(例如,重新加密钥会话)。

本文转载自:「ByteByteGo」,原文:https://url.hi-linux.com/6eo4u,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。

733407406700572137a9a24d6eb98d37.gif

🚀 最近,我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神,有兴趣的同学可以加入和我们一起交流技术,在 「奇妙的 Linux 世界」 公众号直接回复 「加群」 邀请你入群。

🌟『极客视界』科技达人必备综合资讯指南,等你来探索!访问网址 https://bestgeek.org 即可打开新世界。

📕 关注『奇妙的 Linux 世界』公众号,带你开启有趣新生活!更多好用好玩的软件资源,可访问 https://666666.dev 免费获取。

a62a1bae2a57ae1b7eee15ab9ed5537b.png

你可能还喜欢

点击下方图片即可阅读

f93021d43fc9da69b9a67d6097dd1982.jpeg

告别复杂命令行:Hollama 让与 Ollama AI 对话丝般顺滑

d6dfa23ce758d8eff6f6db336a8e4504.png
点击上方图片,『美团|饿了么』外卖红包天天免费领

40c07f3c26c8038e7d1746d890e78f76.png

更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值