• 产品更新

什么是 SSH?安全外壳协议简介

什么是 SSH?安全外壳协议简介

目录

SSH(安全外壳安全套接字外壳)在安全远程访问领域发挥着基础性作用。与RDP(远程桌面协议)并驾齐驱,SSH凭借其无缝且安全的交互特性,稳居顶级协议之列。

本质上,SSH通过终端提供了一种建立与远程服务器及设备连接的强大可靠协议。它如同受保护的网关,使系统和网络管理员能够实现对设备的高度安全远程访问。

在本SSH教程中,我们将深入解析安全外壳协议,阐释SSH的定义及其工作原理。同时指导您使用SSH客户端PuTTY连接远程Linux服务器的全过程。

SSH工作原理概述

通过SSH协议安全连接两台远程服务器涉及两个组件:SSH客户端SSH服务器。客户端是运行在本地设备上的软件,而服务器组件则运行在远程机器上。

建立安全SSH连接后,shell会话随即启动,您可通过本地客户端终端输入SSH命令与服务器交互,实现端口转发和隧道创建。

下面详细探讨SSH的工作原理。

如何从SSH客户端发起连接至远程服务器?

可通过以下步骤从SSH客户端建立连接:

  1. 在本地设备启动SSH客户端,指定远程主机的IP地址或域名。
  2. SSH客户端将验证您的凭证(用户名和密码),并建立加密连接至远程主机以实现安全数据交换。
  3. 确保远程服务器上的SSH守护进程正在运行,该进程监听特定TCP/IP端口以接收客户端连接请求,并通过共享软件版本及支持的SSH协议版本信息进行响应——此时客户端与服务器将交换身份验证数据。
  4. 若凭证正确且服务器接受连接,SSH将在客户端与远程服务器之间建立安全会话。此初始握手过程是建立安全SSH远程控制会话的关键步骤。

默认情况下,为增强安全性并支持现代通信,系统采用SSH协议第2版。接下来我们将探讨SSH协议中使用的加密技术类型。

SSH加密类型详解

SSH采用两种不同的加密技术:

  • 对称加密
  • 非对称加密

对称加密

对称加密是一种使用单一密钥同时完成消息加密与解密的加密方法。这意味着任何掌握该密钥的人都能解密传输中的消息。

在此类SSH加密中,客户端与服务器通过共同商定的流程生成密钥,且该密钥绝不向任何第三方披露

对称加密有时也被称为共享密钥共享密钥加密,通常采用单一密钥或密钥对形式。当使用密钥对时,其中一个密钥可通过另一个密钥轻松推导或计算得出。

非对称加密

非对称加密与对称加密的区别在于其采用两把独立密钥进行加密和解密。这两把密钥分别称为公钥私钥,共同构成公私密钥对

私钥需严格保密,而公钥可自由分发。在此加密技术中,任何人都可使用公钥加密消息,但唯有接收方——即持有对应私钥的人——才能解密。

公钥与私钥通过复杂数学运算关联,但密钥本身是看似随机的长串数字与符号组合。

如何在Linux系统启用SSH连接?

要在Linux系统启用SSH连接,需确保本地与远程服务器均完成客户端及服务器配置。

请按以下步骤在Linux系统启用SSH连接

步骤1:安装OpenSSH客户端

若Linux系统未安装OpenSSH客户端,请更新系统仓库并安装:

$ sudo apt update
$ sudo apt install openssh-client

大多数Linux发行版默认预装SSH客户端。

步骤2:安装OpenSSH服务器

为接收SSH连接,需在Linux系统安装OpenSSH服务器。Ubuntu 22.04默认未安装SSH服务器。但可通过Ubuntu的apt仓库安装OpenSSH服务器,并启用其他SSH连接功能。在Linux系统上安装OpenSSH服务器请使用以下命令:

$ sudo apt install openssh-server

步骤3:检查SSH连接服务状态

使用'systemctl'命令验证SSH服务运行状态:

$ sudo systemctl status ssh

在Ubuntu发行版中,所有服务均由'systemd'单元管理。同样地,您可通过以下命令管理SSH服务(启动或停止):

$ sudo systemctl start ssh
$ sudo systemctl stop ssh

若系统中服务运行异常,可在Linux系统上启用并重启SSH服务:

$ sudo systemctl enable ssh
$ sudo systemctl restart ssh

步骤4:开放防火墙UFW对SSH端口的访问

Linux SSH连接监听22号端口。因此需调整防火墙UFW端口设置以启用远程SSH访问配置。

$ sudo ufw enable

现在通过以下命令在UFW防火墙中开放22端口远程SSH连接:

$ sudo ufw allow 22/tcp

步骤 5:连接 Ubuntu 22.04 上的 SSH 服务器

通过终端启用 SSH 后,即可发起远程 SSH 连接并接收传入的 SSH 远程客户端连接请求。使用 ssh 命令连接远程服务器:

$ssh 用户名@IP地址/远程主机名

例如,我们将使用SSH命令连接到IP地址为(输入您的IP地址)的服务器,用户名为'hostname'。通过终端输入SSH命令:

恭喜!现在您的服务器已准备好接受其他SSH客户端的远程连接请求

什么是PuTTY?

PuTTY是一款开源终端仿真软件。作为免费且跨平台的软件,它同时适用于Windows和Linux用户。

作为广受欢迎的SSH客户端,PuTTY能够安全连接远程机器,且不受底层操作系统限制。其核心功能是提供基于文本的用户界面以安全连接远程服务器,支持多种协议包括SSH、Telnet、rloginSCP

通过PuTTY,您可轻松从Windows环境连接Unix shell系统。尽管Linux系统通常内置SSH命令支持,但众多Linux用户在建立远程服务器SSH连接时仍倾向选用PuTTY应用程序。

如何在Linux系统安装PuTTY?

大多数Linux发行版未预装PuTTY。但您可通过终端在Linux系统安装该软件。

若您的 Linux 系统尚未安装 PuTTY,可从其官方 PuTTY 下载页面手动获取。请在软件包文件中选择 Unix 或 Linux 安装程序。

请按以下步骤在 Ubuntu 22.04 Linux 发行版上安装 PuTTY

步骤 1:通过 Ubuntu Universe 软件仓库下载并安装 PuTTY

PuTTY 同样可在 Ubuntu Universe 软件仓库 中获取,因此也可由此安装。

本例将在 Ubuntu 22.04 Linux 系统上安装 PuTTY。开始安装前,请确保系统已添加并启用 Ubuntu Universe 软件仓库。

步骤 2:添加 Ubuntu Universe 软件源

首先使用以下命令添加 Ubuntu Universe 软件源:

$ sudo add-apt-repository universe

步骤 3:更新系统软件源

添加并启用软件源后,建议使用以下命令刷新所有系统软件源:

$ sudo apt update

步骤 4:在 Linux (Ubuntu 22.04) 上安装 PuTTY

现在,在 Ubuntu 22.04 上通过以下命令安装 PuTTY:

$ sudo apt install putty

完成 PuTTY 安装后,即可在 Ubuntu 系统上启动并使用。您可通过应用搜索栏启动 PuTTY:在搜索栏输入‘PuTTY’,搜索结果中将显示 PuTTY 应用图标。

如何使用PuTTY连接Linux服务器?

通过PuTTY可连接任意远程服务器或设备。本节将演示如何使用PuTTY连接远程Ubuntu Linux服务器。

步骤1:在Windows系统安装PuTTY

  1. 为连接远程Linux设备,需在Windows系统安装PuTTY。访问官方下载页面进行安装。选择适用于Windows的.msi安装程序。
  2. 点击安装程序在系统上运行。首先,PuTTY安装向导将在桌面上启动。点击“下一步”。
  3. 选择目标文件夹。此处我们将采用默认安装路径,点击“下一步”。
  4. 现在点击“安装”按钮,开始在Windows系统上安装PuTTY。
  5. 安装完成后,点击“完成”。
  6. 通过开始菜单启动Windows版PuTTY。

步骤2:配置远程Linux服务器

本指南将使用Ubuntu 22.04作为远程SSH Linux服务器。

  1. 启动远程Linux服务器。根据前文说明,您的Ubuntu系统应已安装‘openssh-server’
  2. 使用‘ip a’或‘ifconfig’命令查看Ubuntu系统的IP地址。
  3. 复制远程服务器IP地址,粘贴至Windows系统的PuTTY配置界面。保持所有字段原样,点击‘打开’。
  4. 桌面将显示‘PuTTY安全警报’,点击‘接受’
  5. 随后终端窗口将在桌面显示。在此输入远程服务器登录名和密码,按回车键后终端将呈现如下界面:
  6. 您已通过PuTTY成功连接至远程Linux服务器。运行以下命令进行验证:
  7. 现在打开Ubuntu 22.04服务器并检查这些命令:

如上图所示,文件夹已在远程Linux服务器创建。现在关闭此窗口以终止会话。

结论

在当今数字时代,SSH通过确保设备间加密通信发挥着至关重要的作用。从理解其复杂机制到建立远程服务器连接,其重要性不言而喻。它在Linux等系统中的适应性,以及通过PuTTY等工具的便捷访问,进一步凸显了其价值。

本指南深入剖析了远程访问SSH并发挥其优势的流程。毕竟,随着数字通信持续发展,掌握SSH技能仍是保障安全可靠数据交换的关键

Bluevps,我们自豪地提供多种定制化Linux VPS方案,助您充分释放SSH的卓越性能。我们致力于通过优先保障安全与性能的高品质Linux VPS解决方案,为您打造卓越的托管体验。

Share

关于作者


scale 1
Ready to scale?

Start for free and unlock high-performance infrastructure with instant setup.

Get started arrow button

帮助我们改进 — 分享您的反馈

您的意见有助于我们提供更好的服务。