目录

简介

先决条件

要求

使用的组件

SSH 协议

SSH交换

相关信息

简介

本文档介绍在安全外壳(SSH)协商期间的数据包级别交换。

先决条件

要求

Cisco建议您了解基本的安全概念：

- 身份验证

- 机密性

- 完整性

- 密钥交换方法

使用的组件

本文档不限于特定硬件版本。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。

SSH 协议

SSH协议是一种保护计算机之间远程登录的方法。SSH应用基于客户端-服务器架构，连接SSH客户端实例与SSH服务器。

SSH交换

1. SSH的第一步称为  Identification String Exchange.

a.客户端构建数据包并将其发送到服务器，该服务器包含：

- SSH协议版本

- 软件版本

客户端协议版本为SSH2.0，软件版本为Putty_0.76。

b.服务器使用其自己的标识字符串交换做出响应，包括其SSH协议版本和软件版本。

服务器的协议版本为SSH2.0，软件版本为Cisco1.25

2. 下一步是Algorithm Negotiation.。在此步骤中，客户端和服务器协商这些算法：

- 密钥交换

- 加密

- HMAC（基于哈希的消息验证码）

- 压缩

1. 客户端向服务器发送Key Exchange Init消息，指定其支持的算法。算法按优先顺序列出。

密钥交换初始化

客户端支持的算法

b.服务器使用其自己的密钥交换初始化消息进行响应，列出其支持的算法。

c.由于这些消息同时交换，双方会比较其算法列表。如果双方支持的算法匹配，则继续下一步。如果没有完全匹配项，服务器将从客户端的列表中选择其也支持的第一个算法。

d.如果客户端和服务器无法就通用算法达成一致，则密钥交换会失败。

服务器密钥交换初始化

3. 此后，双方进入Key Exchange阶段，使用DH密钥交换生成共享密钥并对服务器进行身份验证：

a.客户端生成密钥对，Public and Private并在DH组交换初始数据包中发送DH公钥。此密钥对用于计算密钥。

客户端DH公钥和Diffie-Hellman组交换初始化

b.服务器生成自己的Public and Private密钥对。 它使用客户端的公钥和自己的密钥对来计算共享密钥。

c.服务器还使用以下输入计算Exchange散列：

- 客户端标识字符串

- 服务器标识字符串

- 客户端KEXINIT的有效负载

- 服务器KEXINIT的有效负载

- 服务器来自主机密钥的公钥（RSA密钥对）

- 客户端DH公钥

- 服务器DH公钥

- 共享密钥

d.计算散列值后，服务器使用其RSA私钥对其进行签名。

e.服务器构建消息DH_Exchange_Reply，包括：

- 服务器的RSA-公钥（帮助客户端对服务器进行身份验证）

- 服务器的DH-公钥（用于计算共享密钥）

- 散列（验证服务器并证明服务器已生成共享密钥，因为密钥是散列计算的一部分）

服务器DH公钥和Diffie-Hellman组交换应答

f.收到DH_Exchange_Reply后，客户端以相同方式计算哈希值，并将其与收到的哈希值进行比较，然后使用服务器的RSA公钥对其进行解密。

g.在解密收到的HASH之前，客户端必须验证服务器的公钥。此验证通过证书颁发机构(CA)签名的数字证书完成。如果证书不存在，则由客户端决定是否接受服务器的公钥。

注意：首次通过SSH登录不使用数字证书的设备时，可能会弹出一个窗口，要求您手动接受服务器的公钥。为避免每次连接时都出现此弹出窗口，您可以选择将服务器的主机密钥添加到您的缓存。

服务器的RSA密钥

4. 由于现在已生成共享密钥，因此两个终端都使用共享密钥来派生这些密钥：

- 加密密钥

- IV密钥-这些是用作对称算法输入的随机数，用于增强安全性

- 完整性密钥

密钥交换的结束由NEW KEYS' 消息的交换来发送，该消息通知每一方，将来的所有消息都将加密并使用这些新的密钥加以保护（例如，RADIUS或TACACS+）。

客户端和服务器新密钥

5. 最后一步是服务请求。客户端向服务器发送SSH服务请求数据包，以启动用户身份验证。服务器以SSH Service Accept（SSH服务接受）消息做出响应，提示客户端登录。此交换通过已建立的安全信道进行。

相关信息

- https://www.cisco.com/c/en/us/support/docs/security-vpn/secure-shell-ssh/4145-ssh.html

- https://datatracker.ietf.org/doc/html/rfc4253

- 思科技术支持和下载