如何找到当前连接的当前 SSH 协议版本?

如何找到当前连接的当前 SSH 协议版本?

我使用以下方式连接到 Linux 机器(CentOS 6.4)油灰。除了我可以将PuTTY设置为仅使用一种协议之外,我如何才能找到当前SSH连接的版本(SSH1或SSH2)?

答案1

进入后,你说:

ssh -v localhost

它会告诉您服务器的确切版本。

答案2

另一种方法。

作为克斯塔马斯建议,您可以使用ssh -v localhost。您只需在详细模式下 ssh 到您自己的 127.0.0.1,它将显示进度的调试消息。是的,通过这个过程,您可以查看通信的顶部,并可以获得当前正在运行的 SSH 版本。

如果阅读该ssh man页面后,您会发现-V选项ssh更有用。删除了ssh手册页

-V 显示版本号并退出。

-v 详细模式。使 ssh 打印有关其进度的调试消息。这有助于调试连接、身份验证和配置问题。多个 -v 选项可增加详细程度。最大值为 3。

因此我认为最好简单地做ssh -V并得到类似的东西:

> ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013

答案3

油灰

会议日志记录,选择“SSH 数据包和原始数据”单选按钮。选择日志文件作为putty日志在您选择的位置。建立连接。您应该看到:

Event Log: Server version: SSH-2.0-OpenSSH_5.3
Event Log: Using SSH protocol version 2

有关 SSH-2.0 的详细信息请参见下文。

其他方法

您也可以尝试使用 telnet 客户端,但指向端口 22:

telnet test1 22

连接后您将看到:

尝试 192.168.144.145...
已连接到 test1。
转义字符为 '^]'。
SSH-2.0-OpenSSH_5.3

最后一行是需要查找的行:

SSH-2.0-OpenSSH_5.3

如果显示SSH-2.0“好”,则表示您连接的 SSH 服务器仅支持 SSH 协议版本 2。它不支持来自 SSH V1 协议客户端的连接。

但是如果你看到:

SSH-1.99-OpenSSH_5.3

那么就说明服务器端还是支持SSH协议版本1的,在它的sshd_config文件中有类似这样的内容:

Protocol 1,2

协议 1 存在漏洞,不应使用。

所以说清楚一点。如果您在 telnet 到远程服务器的 22 端口时看到 SSH-2,那么您只能使用 SSH 协议版本 2,因为服务器不支持协议 1。

根据上面的 cstamas 回答,-v标志将显示一行:

debug1: Remote protocol version 1.99, remote software version OpenSSH_5.3

或者:

debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3

你想去version 2.0那里看看。

答案4

您可以从本地机器使用 netcat 快速获取此信息,例如:

$ nc [IP_ADDRESS] 22
SSH-2.0-OpenSSH_5.3

相关内容