SSH详解-1.ssh基础知识
SSH详解-2.ssh基本用法
SSH详解-3.密钥登陆
SSH详解-4.多个ssh公钥
一、ssh是什么
SSH(Secure Shell)是一个提供数据通信安全、远程登录、远程指令执行等功能的安全网络协议
。ssh用于加密两台计算机之间的通信,并且支持各种身份验证机制。最初提出目的是替代非安全的Telnet、rsh、rexec等远程Shell协议。之后SSH发展了两个大版本SSH-1
和SSH-2
。
二、起源
1. 1.x版本
1995年,芬兰赫尔辛基工业大学的研究员 Tatu Ylönen 设计了 SSH 协议的第一个版本(现称为SSH 1
),同时写出了第一个实现(称为 SSH1)。
SSH 可以替换 rlogin、TELNET、FTP 和 rsh 这些不安全的协议,所以大受欢迎,用户快速增长。由于用户越来越多,1995年12月,Tatu Ylönen 就成立了一家公司 SCS,专门销售和开发 SSH。这个软件的后续版本,逐渐从免费软件变成了专有的商业软件。
2. 2.x版本
SSH 1 协议存在一些安全漏洞,所以1996年又提出了 SSH 2
协议(或者称为 SSH 2.0)。该版本与SSH-1不兼容,但在安全性和特性方面都优于SSH-1。更好的安全性,例如,通过Diffie-Hellman密钥交换和通过信息认证码进行强大的完整性检查。SSH-2的新特性,增加了在单个SSH连接上运行任意数量的shell会话的能力。由于SSH-2比SSH-1更有优势而且受欢迎,一些实现如Lsh和Dropbear仅支持SSH-2协议。
3. OpenSSH and OSSH
早在1999年,很多开发人员都很想要一个可用的免费版本,他们找到了SSH源程序的1.2.12
发布版本,这是它在开放源码许可下发布的最后一个版本,Bjorn Gronvall的OSSH就是后来以这个为基础发展出来的。不久,OpenBSD开发人员在Gronvall的代码的基础上开了一个分支,并对其进行了大量的工作后,创建了OpenSSH
。在这个版本中,一个“可移植性”分支被创建了,目的是让OpenSSH能在其他操作系统中使用。
目前,Linux 的所有发行版几乎都自带 OpenSSH
。现在,SSH-2 有多种实现,既有免费的,也有收费的。
三、ssh的主要特性
加密
避免数据内容泄漏通信的完整性
避免数据被篡改,以及发送或接受地址伪装(检查数据是否被篡改,数据是否来自发送者而非攻击者) SSH-2 通过 MD5 和 SHA-1 实现该功能,SSH-1 使用 CRC-32认证
识别数据发送者和接收者身份 客户端验证SSH服务端的身份:防止攻击者仿冒SSH服务端身份,避免中间人攻击和重定向请求的攻击;OpenSSH 通过在 know-hosts 中存储主机名和 host key 对服务端身份进行认证 服务端验证请求者身份:提供安全性较弱的用户密码方式,和安全性更强的 per-user public-key signatures;此外SSH还支持与第三方安全服务系统的集成,如 Kerberos等授权
用户访问控制转发
可以通过SSH为Telnet、FTP等提供通信安全保障,支持三种类型的转发操作:Port Forwarding,X Forwarding,Agent Forwarding