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


35

我使用腻子连接到Linux机器(centos 6.4)。除了可以将腻子设置为仅使用一种类型的协议外,如何找到当前的ssh连接版本(SSH1或SSH2)?


它可以帮助显示您已经进行了哪些研究
Drew Khoury

@DrewKhoury我只是尝试与谷歌找到一个答案,但没有找到关于此的结果。没有人解释如何查看当前的连接(使用中)协议(ssh1或ssh2)。
codiac

Answers:


46

进入后,您会说:

ssh -v localhost

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


4
似乎没有显示当前的连接类型。
codiac

18

我知道这是一个老问题,但是由于遇到了这个问题,我忍不住要发布其他方法。

正如cstamas建议的那样,您可以ssh -v localhost在详细模式下仅使用ssh来访问自己的127.0.0.1,它将显示进度的调试消息。是的,通过此过程,您可以查看通信的顶部,并且可以获得当前正在运行的SSH版本。

但是,如果您阅读该ssh man页面,将会发现-Vssh上的选项更有用。取出ssh手册页

-V显示版本号并退出。

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

因此,我认为最好这样做ssh -V并获得类似于以下内容的方法会更好:

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

希望这可以帮助。


2
那是程序的版本,而不是用于连接的协议。正如3年前的答案正确解释的那样,取决于配置,同一程序可以同时支持SSH1和SSH2协议。
dave_thompson_085'3

11

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

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

然后,这意味着服务器端仍支持SSL协议版本1。它的sshd_config文件中包含以下内容:

Protocol 1,2

协议1易受攻击,不应使用。

所以说清楚。如果在远程登录到远程服务器的端口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

3

我更喜欢这样:

$ echo ~ | nc localhost 22
SSH-1.99-OpenSSH_3.9p1
Protocol mismatch.
$

这样做的好处是可以以编程方式完成此操作,因为连接不会保持打开状态。对于Python,请尝试:

ssh_protocol = float(re.search(r"SSH-(\d.\d+)").group(1))

0

我知道的唯一方法要求拥有足够的特权才能查看中的ssh日志条目/var/log/auth.log

$ echo $SSH_CONNECTION 
127.0.0.1 12375 127.0.0.1 22

SSH_CONNECTION变量的第一和第二字段指示我的连接的源IP和源端口。通过grep对中的这些值进行查询/var/log/auth.log,我可以找到ssh连接经过身份验证后的日志条目。

$ sudo grep -F ' from 127.0.0.1 port 12375 ' /var/log/auth.log | grep ssh
Jun 26 16:29:52 morton sshd[20895]: Accepted keyboard-interactive/pam for jim from 127.0.0.1 port 12375 ssh2

该日志条目告诉我当前连接使用的是ssh2协议。当然,如果ssh会话已经打开了几天,则日志条目可能在文件中,也可能在/var/log/auth.log.0一些旧auth.log文件中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.