与 telnet 相比,SSH 的开销是多少?

mas*_*sgo 4 ssh telnet performance

我很好奇:与 相比,引入的开销有多大SSHtelnet

显然这里有不同的部分:

  1. 由于用于加密的额外往返行程导致的初始连接时间开销
  2. 是否有带宽开销?
    • 传输的每个数据包是否有开销
    • 还是我们最后只有一些填充?
  3. 客户端的 CPU 开销
  4. 服务器端的 CPU 开销
    • 它有多大?
    • 具有 AES 模块的较新 CPU 怎么样?
    • 那么具有数十或数百个 SSH 连接的服务器呢?
    • 客户端和服务器的每个连接 CPU 开销是否对称?
  5. 是否有内存开销?
  6. 我忘记了什么吗?

这更像是一个理论问题。我完全意识到它在服务器仅维护几个 ssh 连接的典型场景中几乎没有区别。

gil*_*ath 5

我会给你一个快速的答案,因为冗长的解释很容易填满 90 分钟的讲座或拖车。这些只是估计,因为它在很大程度上取决于系统负载、您在服务器上抛出的连接类型,当然还有所使用的硬件。

  1. 是和否。在 1 GB 数据或 1 小时连接时间后重新生成密钥。还可以取决于密钥是否用于身份验证。Diffie-Hellman 通常比 RSA 密钥交换更昂贵,但因为它只发生一次(ish)没什么大不了的。
  2. 是的,有开销:您必须添加至少 4 个字节的随机填充 (SSH2) 并且每个数据包都会获得某种类型的 HMAC。取决于使用什么。我不知道具体是多少,但在最大 33 字节(完整 sha2 长度)时更少,最大有效载荷为 35000 - 4 字节填充。您会得到大约 37/34996 = 0.001% 或更少的开销。
  3. CPU 开销最小。这是 AES 标准的目标之一。
  4. 同样在这里。它是大致对称的,因为加密操作是对称的(类似于乘法和除法是对称的),当然这需要知道密钥。服务器可以处理多少个连接?取决于连接。如果您有简单的终端会话:很多。如果有人向您发送 1 GBit 连接并通过 scp 复制 10 GB 数据:使用标准的 intel i7 可能一次两到三个。很可能是您的 NIC 或存储瓶颈首先出现。
  5. 没有把握。有一点大概。我会说不超过正常 telnet 会话内存的两倍。