我有一个 HTTP 网络服务,有时连接设置会以一种奇怪的方式失败:
在哪些情况下客户端系统可以决定用 RST 数据包进行回复?我可以想象当 SYN,ACK 包含例如时会发生这种情况。不正确的序列号(但这似乎不适用于我的情况 - 序列号看起来不错)。所以我对详尽的 :-) 列表感兴趣,其中列出了客户端在收到 SYN,ACK 数据包后会发送 RST 数据包的情况。
特别是,客户端应用程序代码(在 Linux 下使用普通的 BSD 风格的套接字 API)是否有可能导致这个 RST 数据包,例如。通过close()
在 3 次握手仍在进行时调用?
远程用户首次尝试使用 Mac OS X 下的“传输”客户端连接到我的 SFTP/SSH 服务器,并发现主机密钥指纹与预期值不匹配。
我有显示指纹的屏幕截图,并将其与ssh-keygen -lf /etc/ssh/ssh_host_dsa_key
和的输出进行了比较ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
,但它与其中任何一个都不匹配。
我也未能成功地将指纹与cut -d ' ' -f 2 < /etc/ssh/ssh_host_dsa_key.pub | base64 -d | sha1sum
和的输出进行比较cut -d ' ' -f 2 < /etc/ssh/ssh_host_rsa_key.pub | base64 -d | sha1sum
(因为似乎正在使用不同的指纹算法?)。
客户端消息框标题为(翻译成英文)
<主机名>的主机密钥未知
和国家
服务器未知。主机密钥的指纹是<16个八位位组>。( 允许 ) ( 拒绝 ) [ ] 始终
因此,没有指示是否使用 RSA 或 DSA 密钥,或者是否使用 MD5 或某种 SHA 算法来创建指纹。
显示给远程用户的指纹有 16 个以冒号分隔的八位字节,因此它似乎没有使用 SHA-224 或更高版本。更新:我刚刚注意到,即使 SHA-1 哈希值也有 20 个八位字节,因此显示的指纹显然不是任何 …