ssh和ssl的联系和区别
ssh:Secure Shell,安全Shell,是一个软件,处于应用层旨在取代明文通信的telnet;对应的开源实现程序是openssh。
ssl:Secure Sockets Layer,安全套接字层,是一个协议,处于传输层之上应用层之下用于协商密钥;对应的开源实现库是openssl。
简写 | 全称 | 译名 | 身份 | 所处层 | 目的 | 加密算法 | 开源实现 |
ssh | Secure Shell | 安全shell | 应用 | 应用层 | 取代telnet | RSA | openssh |
ssl | Secure Sockets Layer | 安全套接字层 | 协议 | 传输层之上应用层之下 | 协商密钥 | 协商得到对称密钥 | openssl |
由此看来ssh和ssl不应该有什么关系的,事实上也确实两者并没有关系;有关系的是openssh和openssl。
openssl其实包括三部分:SSL协议库、应用程序(openssl可执行程序)以及密码算法库(包括各类主流加密算法)。
openssh正是使用openssl实现自己所用的RSA算法(在编译时链入所以openssl应先于openssh安装)。
另外由于“心脏出血(heartbleed)”漏洞,openssh打算从openssl转向自己开发的分支LibreSSL。