我想到ssh存在1和2两个版本(ssh1和ssh2)。这两者之间有什么不同?还有我该怎么在linux上检查ssh协议的版本?
安全shell(ssh)通过加密的安全通信通道来远程登录或者远程执行命令。ssh被设计来替代不安全的明文协议,如telnet、rsh和rlogin。ssh提供了大量需要的特性,如认证、加密、数据完整性、授权和转发/通道。
ssh1 vs. ssh2
ssh协议规范存在一些小版本的差异,但是有两个主要的大版本:ssh1 (版本号 1.xx) 和 ssh2 (版本号 2.00)。
事实上,ssh1和ssh2是两个完全不同互不兼容的协议。ssh2明显地提升了ssh1中的很多方面。首先,ssh是宏设计,几个不同的功能(如:认证、传输、连接)被打包进一个单一的协议,ssh2带来了比ssh1更强大的安全特性,如基于mac的完整性检查,灵活的会话密钥更新、充分协商的加密算法、公钥证书等等。
ssh2由ietf标准化,且它的实现在业界被广泛部署和接受。由于ssh2对于ssh1的流行和加密优势,许多产品对ssh1放弃了支持。在写这篇文章的时候,openssh仍旧支持ssh1和ssh2,然而在所有的现代linux发行版中,openssh服务器默认禁用了ssh1。
方法一
如果你想检查本地openssh服务器支持的ssh协议版本,你可以参考/etc/ssh/sshd_config这个文件。用文本编辑器打开/etc/ssh/sshd_config,并且查看protocol字段。
如果如下显示,就代表服务器只支持ssh2。
protocol 2
如果如下显示,就代表服务器同时支持ssh1和ssh2。
protocol 1
方法二
如果因为openssh服务其运行在远端服务器上而你不能访问/etc/ssh/sshd_config。你可以使用叫ssh的ssh客户端来检查支持的协议。具体说来,就是强制ssh使用特定的ssh协议,接着我么查看ssh服务器的响应。
下面的命令强制ssh使用ssh1:
ssh -1 user@remote_server
下面的命令强制ssh使用ssh2:
ssh -2 user@remote_server
如果远程ssh服务器只支持ssh2,那么第一个带“-1”的选项就会出现像下面的错误信息:
protocol major versions differ: 1 vs. 2
如果ssh服务器同时支持ssh1和ssh2,那么两个命令都有效。
方法三
另一个检查版本的方法是运行ssh扫描工具,叫做scanssh。这个命令行工具在你想要检查一组ip地址或者整个本地网络来升级ssh1兼容的ssh服务器时很有用。
下面是基本的ssh版本扫描语法。
sudo scanssh -s ssh -n [ports] [ip addresses or cidr prefix]
-n选项可以指定扫描的ssh端口。你可以用都好分隔来扫描多个端口,不带这个选项,scanssh会默认扫描22端口。
使用下面的命令来发现192.168.1.0/24本地网络中的ssh服务器,并检查ssh协议v版本:
sudo scan -s ssh 192.168.1.0/24
如果scanssh为特定ip地址报告“ssh-1.xx-xxxx”,这暗示着相关的ssh服务器支持的最低版本是ssh1.如果远程服务器只支持ssh2,scanssh会显示“ssh-2.0-xxxx”。
自举电路如何计算
米尔科技Versatile Express处理器子板介绍
证监会同意博众精工科创板IPO注册
五个开发者必知的CI/CD工具
实际工作中的晶体管适用性确认-确认平均功耗在额定功率范围内
如何在Linux上检查SSH的版本?
国元证券贺茂飞:千亿赛道,成熟市场叠加新兴纯增量市场
IBM 董海军:可持续浪潮中如何寻找机遇?
5G规模部署“站点极简创新”与“产业开放合作”
震惊!4K、8K画质背后,竟然少不了AI的助力
苹果系统更新透露AirPods2代即将到来
通信基站节能知识
远程代码执行漏洞现身运行内嵌式系统的流行操作系统
OTG收发器的连接电路图
南卡Runner Pro2评测,南卡独创全震指向性技术详解
USB传感器与存储器在数据记录中的应用
嵌入式技术在物流机器人行业中应用的优势什么
工程师:关于单片机是否要转嵌入式Linux的观点
小米Max2谍照曝光:骁龙626+4G运存起步!比小米Max更加圆润
MS5607-02BA03气压计传感器应用设计指南