密码学 - SSH 协议



安全外壳 (SSH) 协议是一种通过网络安全地发送命令到计算机的方法,即使是在不安全的网络上。它使用特殊的代码来确保连接安全和私密。使用 SSH,您可以远程控制计算机,就像商店老板在旅行时可能会向员工发出指示一样。

在 SSH 之前,像 Telnet 这样的旧方法可以让任何人都看到正在发送的指令。就像把商店老板放在免提电话上,店里的每个人都能听到私人谈话。但是 SSH 保持一切秘密和安全,就像在您的对话周围有一个安全的壳一样。

SSH 的历史背景和发展

Tatu Ylonen 于 1995 年开始开发安全外壳,因为他需要一个比 Telnet 更安全的替代方案来管理他大学的网络。SSH 的初始版本称为“安全外壳 v1”,但它存在重大的安全问题,后来在“安全外壳 v2”中得到了修复。

它是如何工作的?

SSH 客户端连接到 SSH 服务器以建立连接,因为该协议在客户端-服务器系统上工作。SSH 客户端启动连接设置过程,并使用公钥密码术对 SSH 服务器的身份进行身份验证。SSH 协议在设置后使用强大的对称加密和散列方法,以确保在客户端和服务器之间传输的数据的机密性和完整性。

下图显示了建立安全外壳连接的简化过程。

SSH Connection

关键组件

SSH 连接需要三个基本要素:密钥、服务器和客户端。一般来说,客户端是由用户安装的计算机软件,它发出连接请求。

服务器软件安装在另一台计算机上,接收来自客户端的传入请求。称为密钥的数字文件保存两端安全连接和身份验证所需的数据。

SSH 的属性

以下是我们需要考虑的 SSH 的一些属性:

  • 加密 - 为了维护机密性并阻止对系统的未经授权的攻击,客户端和服务器之间传输的加密数据。
  • 身份验证 - SSH 使用公钥和私钥对进行身份验证,这比传统的密码身份验证提供了更高的安全级别。
  • 数据完整性 - 在通信期间,SSH 确保发送的消息的数据完整性。
  • 隧道 - 为了通过加密通道转发网络通信,我们可以使用 SSH 建立安全的隧道。

SSH 端口转发

SSH 端口转发是一种保护 TCP/IP 连接的方法。TCP/IP 数据包可以通过 SSH 链接进行隧道传输,隐藏数据并保护通道免受攻击者的攻击。SSH 端口转发也可以被视为一种虚拟专用网络。

SSH 端口转发的类型

您可以通过使用 SSH 端口转发通过加密连接安全地连接到远程资源。有三种类型的 SSH 端口转发:

  • 本地端口转发 - 通过这种类型的端口转发,您可以将本地工作站上的端口的流量重定向到网络上或外部网络上的另一台机器上的端口,通过安全的 SSH 隧道。
  • 远程端口转发 - 通过此类型,您可以将一台机器上的端口的流量重定向到另一台机器,通过 SSH 隧道和加密连接。
  • 动态端口转发 - 通过这种形式的端口转发,流量通过 SSH 服务器和本地 SOCKS 代理服务器发送到网络上的其他机器。通过这样做,您可以越过防火墙并使用远程网络提供的每项服务。

SSH 的用途

安全外壳 (SSH) 协议是一种安全地从一台计算机远程登录到另一台计算机的方法。它为强大的身份验证提供了多种选择,并使用强大的加密来保护对话的安全性和完整性。它是 FTP 等不安全的文件传输技术和 telnet 和 rlogin 等不受保护的登录协议的安全替代方案。

企业网络使用该协议用于:

  • 授予人员和自动化流程安全访问权限。
  • 自动和交互式文件传输。
  • 远程发送命令。
  • 监控网络基础设施和其他关键系统组件。

SSH 的应用

安全外壳的应用如下:

1. 对服务器和设备的安全远程访问

SSH(安全外壳协议)建立了一条安全的加密路由,用于远程访问服务器和设备。当服务器或设备位于不同的物理位置(例如数据中心或云网络)时,这非常有用。

2. 通过 SSH 连接使用 SCP 或 SFTP 协议进行安全文件传输

除了远程访问之外,SSH 还可以通过 SCP(安全复制协议)或 SFTP(SSH 文件传输协议)安全地通过网络传输文件。这两种协议都通过加密客户端和服务器之间发送的数据来提供安全的文件传输。

3. 使用端口转发通过加密通道隧道传输流量

SSH 隧道允许用户通过加密通道路由通信,在两个目的地之间建立安全连接。这可以通过设置端口转发规则来实现,该规则将本地机器上的一个端口的流量路由到远程机器上的另一个端口。

SSH 连接常见问题的故障排除

与任何其他技术一样,SSH 连接也可能无法正常工作。这些问题可能从基本的连接问题到复杂的配置或安全问题不等。

常见的错误消息和解决方案

SSH 最常见的问题之一是收到指示连接问题的错误消息。最常见的问题包括“连接超时”、“权限被拒绝”和“主机密钥验证失败”。这些问题的解决方案因来源而异,但通常涉及检查网络连接、验证凭据或权限,或监控配置设置。

诊断连接问题的调试技巧

诊断 SSH 连接问题可能很困难,尤其是在您不熟悉其背后的技术或对诊断工具的访问有限的情况下。值得庆幸的是,有很多方法可以识别和解决网络连接问题。解决 SSH 连接问题的第一步是确保客户端和服务器工作站之间的基本网络连接。

诸如 ping 和 traceroute 之类的工具可用于识别网络路由问题或防火墙阻止。如果基本连接正常,但您仍然遇到 SSH 连接问题,则可能需要评估您的身份验证设置或查看日志以获取有关导致问题原因的更多信息。

SSH 的优点

使用 SSH 的优点如下:

  • 安全性 - 使用 SSH 的主要优点是能够通过不受信任的网络建立安全连接。
  • 简单性 - 设置 SSH 连接有时就像在双方安装软件一样简单。
  • 灵活性 - 通过 SSH 连接后,用户可以远程执行各种操作,而无需物理访问服务器。

SSH 的缺点

使用 SSH 的缺点如下:

  • 性能开销 - 加密过程可能会导致一些性能成本,尤其是在通过网络发送大量数据时。
  • 复杂性 - 配置 SSH 连接可能很困难,需要对底层原理和协议有扎实的了解。
  • 安全风险 - SSH 连接的安全程度与其用于身份验证的密钥一样安全。如果密钥被黑客入侵或被盗,未经授权的人员可以访问关键信息。

SSH 与 SSL

SSH(安全外壳)和 SSL(安全套接字层)之间的主要区别如下:

序号 SSH(安全外壳) SSL(安全套接字层)
01 SSH 是一种隧道协议,具有用户名/密码身份验证系统。 SSL 没有用户名或密码身份验证系统。
02 通常 SSH 在 22 端口号上工作。 它在 443 端口号上工作。
03 SSH 依赖于网络隧道。 SSL 依赖于证书。
04 这是一个用于服务器和客户端身份验证过程的三阶段过程。 它是用于服务器和客户端身份验证的数字证书。
05 它加密互联网上两台计算机之间的通信。 SSL 加密浏览器和服务器之间的通信。
06 SSH 适用于安全地在互联网上执行命令。 它安全地传输信用卡和银行业务中的关键数据。
07 SSH 使用对称密钥算法来提供数据机密性。 SSL 使用对称和非对称加密算法来提供数据隐私。
广告