0

在 SSH 传输层协议规范http://www.ietf.org/rfc/rfc4253.txt的“4.2.协议版本交换”部分中,它说,“当连接建立时,双方必须发送一个标识细绳。”。

但它没有定义哪一方应该启动这个过程,服务器端还是客户端?

这里有一些观察,

  1. http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_12-4/124_ssh.html,“图2:SSH传输层协议包交换”中,客户端发起交换过程。

  2. 我尝试使用 JSCH 作为客户端连接服务器,这是快照。服务器端先发送 SSH 协议版本。 在此处输入图像描述

这是一个问题,JSCH 和 SSH 服务器都不发送协议版本。TCP 连接建立在包 93、94、95 中。5 秒后,服务器端关闭包 99 中的连接。

你能帮忙弄清楚为什么客户端和服务器都没有发送协议版本吗?多谢!

在此处输入图像描述

问候,乔伊

4

2 回答 2

0

是的,我们发现一些 cisco 盒子在没有收到客户端的版本字符串的情况下不会发送它的版本字符串。最近的jsch版本会立即发送。

于 2013-04-25T10:10:49.367 回答
0

但它没有定义哪一方应该启动这个过程,服务器端还是客户端?

正确的。由于双方都必须发送它,并且两者都不是对对方的响应,因此谁先发送它是无关紧要的。

于 2013-04-25T02:53:35.030 回答