什么是 SSH 及其工作原理?

已发表: 2021-08-15

SSH 是一种安全网络协议,用于访问网络中的远程计算机。

计算机通过网络相互交谈。 因此,网络研究人员定义了一套与其他机器通信的规则,并开始开发像 Telnet 这样的协议; 使用它,一个用户可以控制另一台计算机。

但它们并不安全,即网络中间的任何人都可以拦截和读取正在传输的数据。 在 90 年代中期,一个名为ssh的更安全的协议作为 telnet 协议的可靠继承者被引入。

安全外壳

如果您是某个行业的软件开发人员或系统管理员,您可能至少使用过一次 ssh。 如果你没有,让我们现在学习它,因为它是必须知道的基本技能之一。

什么是 SSH?

SSHSecure ShellSecure Socket Shell是一种网络协议,可以帮助我们安全地访问远程机器(主要是远程服​​务器)并与之通信。

它提供强大的加密功能,被网络管理员和开发人员广泛用于管理远程系统和应用程序、执行命令、共享文件等。

需要 SSH

SSH 创建于 1995 年,旨在解决不安全的远程访问协议(如 rlogin、rsh、Telnet)所面临的安全问题。

现在让我们谈谈 Telnet,它代表 1969 年开发的Teletype Network 。它是一个简单的命令行工具,运行在您的计算机上以访问远程服务器(位于全球任何地方)。 并发送要在该服务器上执行的命令,就好像您就坐在远程服务器前(甚至离服务器几英里远)。 Telnet 通过网络以纯文本形式传输和接收消息

您将执行的命令可以是运行程序、创建目录、创建/删除/传输文件、启动/停止服务等。

在网络中连接另一台机器的问题是,传输的数据将通过许多网络。 与此同时,其中一些可能是不安全的,传输数据可能会被拦截,并可能在到达目标机器之前被修改。

加密通讯

在安全性不那么重要的早期,所有通信都以纯文本形式进行。 因此,可以很容易地拦截客户端和服务器之间通过 Internet 传输的数据。 由于消息未加密,因此可以读取它。

因此,明文协议极不安全,永远不会用于敏感数据传输,如密码、机密等。因此,SSH 被认为是传统远程访问网络协议的安全替代方案。

它是如何工作的?

SSH 使用客户端-服务器架构,通过将 ssh 客户端与 ssh 服务器连接起来,在网络上进行安全通信。 默认情况下,ssh 服务器侦听标准 TCP 端口 22(您可以更改它以获得更好的安全性)。

它使用公钥加密技术在客户端和服务器之间进行身份验证。 此外,该协议使用强大的对称加密和散列算法进行客户端和服务器之间的消息交换,以确保隐私和数据完整性。

SSH 加密通信

Linux 因其安全性耐用性而成为远程服务器广泛使用的操作系统。 网上很多使用Linux操作系统的服务器已经运行了很多年,没有出现过多次故障,甚至没有重启过。

大多数 SSH 会话(我们访问远程服务器的时期)只会有以下两个操作:

  • 验证
  • 命令执行

SSH 服务器可以使用多种方法对客户端进行身份验证。

两种流行的方式是:

  • 基于密码
  • 基于密钥

基于密码的身份验证是用于对已安装 OpenSSH 的客户端进行身份验证的默认方法。 它是最基本的 ssh 身份验证,但不是最安全的身份验证。

即使密码被安全地发送到服务器,现代暴力攻击也可能绕过身份验证。

基于密钥的身份验证通过生成 SSH 密钥对进一步提高系统安全性,这被证明是一种可靠且安全的替代方案。

服务器成功验证客户端后,它们之间就会建立安全连接。

使用 SSH 访问远程服务器

如果您是 Mac/Linux 用户,您可以直接使用终端输入并运行 ssh 命令,因为默认情况下已经安装了 OpenSSH。

如果您是 Windows 用户,则需要安装一个第三方终端仿真器客户端才能运行 ssh 命令。 PuTTY 是 Windows 操作系统最流行的 ssh 客户端。

要使用 SSH 连接到远程服务器,您至少需要了解两件事。

  • 服务器主机
  • 用户名

基本 ssh 命令的语法是:

 $ ssh <user-name> @ <host> -p <port-no>

user-name是我们尝试连接的远程机器的用户名(而不是本地机器上的用户), host是 IP 地址或域名。

让我们看一个使用 OverTheWire 网站连接到远程服务器的示例。 这是一个免费的兵棋推演挑战网站。

现在,让我们使用 ssh 连接到强盗挑战。 这是教导如何使用 SSH 登录的网站上可用的挑战之一。

证书:

用户名和密码: bandit0
主机和端口: bandit.labs.overthewire.org ,2220

当您键入以下命令并按回车键时:

 $ ssh [email protected] -p 2220

它将提示您输入密码以进行身份​​验证。 现在输入密码并按回车键:

SSH 登录示例

如果输入的密码正确,则您已成功登录到远程服务器,您的终端将如上图所示。

现在您可以使用远程机器的终端来键入和执行您的命令并执行您需要的操作。

当你想结束 ssh 会话时,输入exit命令:

 $ exit

SSH 会话结束

当您成功退出 ssh 会话时,您会收到一条消息连接已关闭”

结论

SSH 流行背后的主要原因是服务器和客户端之间的整个通信是加密的

大多数人认为使用 ssh 很复杂,了解它的工作原理并不容易理解,但它比您想象的要简单。 现在您对 SSH 有了基本的了解,它是如何工作的,它背后的安全方面,以及为什么它在通信中起着至关重要的作用。

接下来,探索一些成为系统管理员的资源。