一、简介
- 如果你仔细注意,在使用
Cydia
安装OpenSSH
的时候,你会发现它是先安装了OpenSSL
在安装OpenSSH
,他们直接是有什么关联跟区别呢?
SSL
:Secure Sockets Layer
的缩写,是为网络通信提供安全及数据完整性的一种安全协议,在传输层对网络连接进行加密,可以说它是一个协议或者说一个标准。OpenSSL
:既然说SSL
是协议或者标准,那么就有对应的实现,OpenSSL
就是SSL
的开源实现,绝大部分HTTPS
请求等价于:HTTP + OpenSSL
SSH
:Secure Shell
的缩写,意为安全外壳协议
, 是一种可以为远程登录提供安全保障的协议,使用SSH
,可以把所有传输的数据进行加密,中间人
攻击方式就不可能实现,能防止DNS
欺骗和IP
欺骗,中途拦截篡改数据,它也是一个协议或者说一个标准。OpenSSH
:同上,既然协议或标准,那么就有实现,OpenSSH
就是SSH
协议的免费开源实现。OpenSSH
与OpenSSL
有什么关系呢?:简单来说OpenSSH
的加密就是通过OpenSSL
完成的,相当于OpenSSH
是依赖OpenSSL
的。
二、SSH 版本问题
SSH
目前有两个版本SSH-1
与SSH-2
,目前比较用的多的是SSH-2
,在我们开发中,客户端和服务端版本要保持一致才能通信。- 如何查看
SSH
客户端和服务端版本呢?打开命令行:
// 通过命令进入 ssh 文件 dengzemiaodeMacBook-Pro:~ dengzemiao$ cd /etc/ssh // 查看文件列表 dengzemiaodeMacBook-Pro:ssh dengzemiao$ ls moduli ssh_config sshd_config // ssh_config 是客户端文件,如果你的电脑作为客户端就查看这个文件 // sshd_config 是服务端文件,如果你的电脑作为服务端就查看这个文件
- 我这里呢
MAC
电脑是客户端,所以我查看一下ssh_config
文件即可,打开文件之后里面的Protocol
字段就是版本号
// 查看 ssh_config 文件 dengzemiaodeMacBook-Pro:ssh dengzemiao$ cat ssh_config ....... 上下的内容我就删掉省略了 # Protocol 2 // 这个字段就是版本号,2 就是 SSH-2 ....... 上下的内容我就删掉省略了
- 那怎么查看服务端的,以
iPhone
手机举例,现在我们越狱之后的iPhone
手机就是服务端,我们可以连接iPhone
手机并查看一下sshd_config
文件里面的版本号,命令行连接手机之后,查询命令跟上面的一致。
// 连接手机 dengzemiaodeMacBook-Pro:~ dengzemiao$ ssh root@10.0.89.184 // 输入密码 root@10.0.89.184's password: // 进入 ssh 文件 iPhone:~ root# cd /etc/ssh // 查看文件列表 iPhone:/etc/ssh root# ls moduli ssh_config sshd_config // 查看服务端文件 iPhone:/etc/ssh root# cat sshd_config ....... 上下的内容我就删掉省略了 # Disable legacy (protocol version 1) support in the server for new # installations. In future the default will change to require explicit # activation of protocol 1 Protocol 2 // 这个字段就是版本号,2 就是 SSH-2 ....... 上下的内容我就删掉省略了