一 概述
SSH (Secure Shell)是一种网络协议,用于加密两台计算机之间的通信,并且支持各种身份验证机制,主要用于保证远程登陆和远程通信的安全,任何网络服务都可以用这个协议来加密。
历史上,网络主机之间的通信是不加密的,属于明文通信。这使得通信很不安全,一个典型的例子就是服务器登录。登录远程服务器的时候,需要将用户输入的密码传给服务器,如果这个过程是明文通信,就意味着传递过程中,线路经过的中间计算机都能看到密码,这是很可怕的。
SSH 就是为了解决这个问题而诞生的,它能够加密计算机之间的通信,保证不被窃听或篡改。它还能对操作者进行认证(authentication)和授权(authorization)。明文的网络协议可以套用在它里面,从而实现加密。
SSH可以替换rlogin,TELNET,FTP和rsh这些不安全的协议。
二 SSH架构
由于SSH2闭源之后,一般使用的SSH是指OpenSSH。
SSH的软件架构是服务器-客户端模式(Server-Client)。在这种架构中,SSH软件分为两个部分:
向服务器发出请求的部分,即客户端,OpenSSH的实现为ssh;
接收客户端发出的请求的部分,称为服务器(Server),OpenSHH的实现为sshd。