cst*_*mas 55
一进门就说:
ssh -v localhost
Run Code Online (Sandbox Code Playgroud)
它会告诉您服务器的确切版本。
小智 27
另一种方式。
正如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
Run Code Online (Sandbox Code Playgroud)
dav*_*vey 14
在Session , Logging 中,选择“SSH 数据包和原始数据”单选按钮。在您选择的位置选择作为putty.log的日志文件。进行连接。你应该看到:
Event Log: Server version: SSH-2.0-OpenSSH_5.3
Event Log: Using SSH protocol version 2
Run Code Online (Sandbox Code Playgroud)
有关 SSH-2.0 含义的详细信息,请参见下文。
您也可以尝试使用 telnet 客户端,但指向端口 22:
telnet test1 22
Run Code Online (Sandbox Code Playgroud)
连接后,您将看到:
正在尝试 192.168.144.145...
连接到 test1。
转义字符是“^]”。
SSH-2.0-OpenSSH_5.3
最后一行是要查找的行:
SSH-2.0-OpenSSH_5.3
Run Code Online (Sandbox Code Playgroud)
如果它说SSH-2.0那很好,那么您连接的 SSH 服务器仅支持 SSH 协议版本 2。它不支持来自 SSH V1 协议客户端的连接。
但是,如果您看到:
SSH-1.99-OpenSSH_5.3
那么这意味着服务器端仍然支持 SSH 协议版本 1。它的sshd_config文件中有这样的内容:
Protocol 1,2
Run Code Online (Sandbox Code Playgroud)
协议 1 易受攻击,不应使用。
所以要弄清楚。如果您在 telnet 到远程服务器的端口 22 时看到 SSH-2,那么您只能使用 SSH 协议版本 2,因为服务器不支持协议 1。
根据上面的 cstamas 回答,该-v标志将显示一行:
debug1: Remote protocol version 1.99, remote software version OpenSSH_5.3
Run Code Online (Sandbox Code Playgroud)
或者:
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
Run Code Online (Sandbox Code Playgroud)
你想去那里看看version 2.0。
我更喜欢这个:
$ echo ~ | nc localhost 22
SSH-1.99-OpenSSH_3.9p1
Protocol mismatch.
$
Run Code Online (Sandbox Code Playgroud)
这里的好处是它可以通过编程方式完成,因为连接没有保持打开状态。对于 Python,请尝试:
ssh_protocol = float(re.search(r"SSH-(\d.\d+)").group(1))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
206787 次 |
| 最近记录: |