SSH详细介绍
SSH介绍
SSH(Secure Shell)
是一种网络协议,用于加密方式远程登录和操作网络设备上的另一个计算机,SSH
提供了一种安全的传输方法,在不安全的网络环境中提供了两个主要功能:安全的远程命令执行和安全文件传输,SSH
是互联网上使用最广泛的安全协议之一。
SSH
协议主要由三个核心组件组成:
-
SSH客户端:通常安装在用户的系统上,用户利用客户端软件连接到服务器,在类
Unix
系统中,常见的SSH
客户端有OpenSSH
中的ssh
命令,而Windows
原先没有内置SSH
客户端,但在最近版本的Windows 10
和Windows Server 2019
中Microsoft
开始提供了OpenSSH
客户端和服务器的支持。 -
SSH服务器:运行在远端设备上,等待客户端的连接请求,在类
Unix
系统中,常见的SSH
服务器是OpenSSH
服务器。 -
加密技术:
SSH
使用多种加密技术来保障数据传输的安全,最初连接时,SSH
客户端和服务器会进行一个称为“握手”的过程,在这个过程中,它们会协商一个临时的加密会话密钥,并用该密钥对后续的通信数据进行加密。
SSH
通常运行在TCP
的22号端口上,并可以分为以下几个步骤来描述一个典型的SSH
工作过程:
-
验证:当SSH客户端想要连接到
SSH
服务器时,服务器将向客户端发送其公钥。 -
密钥交换:客户端和服务器协商一个临时的会话密钥以加密连接,这个过程使用了一个叫作密钥交换算法的过程,它确保即使有人可以监听通信,也不能解读它们。
-
身份验证:客户需要通过密码、公钥认证或更复杂的方式进行身份验证,公钥认证涉及到客户端提供一个由服务器事先认可的公钥对应的私钥。
-
命令执行和数据传输:一旦身份认证通过,用户就可以在安全的
SSH
连接上发送命令并接收结果,亦或进行文件传输。
安全特性方面,SSH
具有:
-
加密:
SSH
使用加密来保护数据传输中的隐私和完整性。 -
身份验证:
SSH
支持多种认证方式,保证了用户是合法的。 -
授权:
SSH
还可以对连接到系统的用户进行严格的授权控制。
SSH
早期版本(如SSH-1
)存在安全性问题,现在已经被SSH-2
这个更新且更安全的版本所取代,作为一个安全协议,SSH
的一个重要应用是在不安全的网络(例如互联网)中保护远程管理任务的安全,此外,SSH
协议还支持端口转发(Tunneling
)和X11
转发,这允许用户在SSH
连接上安全地运行图形用户界面(GUI
)应用程序。