Answers:
我知道这是一个老问题,但是由于遇到了这个问题,我忍不住要发布其他方法。
正如cstamas建议的那样,您可以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
希望这可以帮助。
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
那里看。
我知道的唯一方法要求拥有足够的特权才能查看中的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
文件中。