我使用以下方式连接到 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