用心打造
VPS知识分享网站

什么是SSH?最新通过SSH访问服务器教程

当我们需要安全地连接到远程服务器时,需要一种比简单密码更安全的方法,SSH可以提供必要级别的保护。

什么是SSH?最新通过SSH访问服务器教程

什么是 SSH?

什么是 SSH

SSH代表安全外壳。它是一种基于加密的网络协议,用于安全地远程访问计算机和服务器。SSH 中使用的技术通过加密传输的所有数据(包括密码和命令)在客户端和服务器之间提供安全通道。

如何使用 SSH?

SSH 允许用户安全地登录远程系统并执行命令,就像直接与本地机器交互一样。

通过 SSH 进行连接需要 SSH 服务器和 SSH 客户端。SSH 服务器侦听 TCP/IP 端口上的连接,并在客户端请求连接时进行身份验证,然后开始为客户端提供服务,允许用户使用服务器。SSH 客户端用于登录远程计算机并执行必要的命令。

你还需要在开始时创建一个私钥和一个公钥,然后将公钥添加到服务器。私钥由用户存储,用于访问服务器。

我必须使用命令行吗?

如果您想从 Windows 操作系统连接到远程服务器,只需在计算机上安装一个特殊实用程序(PuTTY、SecureCRT、ShellGuard、Axessh 或其他)。在这种情况下,所有操作都使用图形界面执行,仅在某些情况下使用命令行。

如果您从 Linux 或 MacOS 进行连接,除了安装特殊实用程序(Openssh、kdessh、lsh-client 等)之外,您还需要内置的终端实用程序。在终端中,您需要输入命令来连接到远程服务器。

什么是 SSH 密钥?

什么是 SSH 密钥

SSH 密钥是 SSH 协议中用于安全身份验证的一对加密密钥。密钥对由一个公钥和一个私钥组成。公钥驻留在远程服务器上,而私钥则安全地存储在用户的计算机或设备上。

当用户尝试与服务器建立 SSH 连接时,服务器会向客户端发送请求。客户端使用其私钥创建数字签名,并将其发送回服务器。服务器可以使用存储在服务器上的相应公钥来验证此签名。如果签名有效,则授予客户端访问权限。

SSH 密钥是一种比传统的基于密码的身份验证更安全、更方便的替代方案。它们消除了通过网络传输密码的需要,并且可以抵御暴力攻击。系统管理员、开发人员和其他经常访问远程服务器的用户通常使用 SSH 密钥。

SSH 命令示例

SSH 命令示例

以下命令用于直接使用 SSH 密钥:

  • ssh。此命令用于建立与远程服务器的 SSH 连接。它通常如下所示:ssh username@hostname
  • scp。scp(安全复制)命令允许通过 SSH 连接在本地计算机和远程服务器之间安全地传输文件。其用法如下:scp [options] <source> <destination>
  • ssh-keygen。此命令用于生成 SSH 密钥对。它会创建公钥和私钥文件。基本语法是ssh-keygen [options]。例如,ssh-keygen -t rsa会生成 RSA 密钥对。
  • ssh-copy-id。生成 SSH 密钥对后,可以使用ssh-copy-id命令将公钥复制到远程服务器,提供免密码认证。该命令使用方式如下:ssh-copy-id username@hostname
  • ssh-agent。这是管理 SSH 密钥的程序。它将解密的私钥存储在内存中。您可以使用 ssh-agent 命令运行它,然后使用ssh-add添加您的私钥。

SSH 还允许您使用导航、数据库、文件、目录、档案及其内容(创建目录和文件、复制、移动、重命名、删除文件和目录等)。还有一组命令可用于此目的。

如何启用 SSH 连接

如何启用 SSH 连接

检查 SSH 是否已启用,因为许多 Linux 发行版和 MacOS 系统默认安装它。要检查 SSH 是否已启用,请打开终端并输入以下命令

ssh 本地主机

如果您看到“连接被拒绝”或“连接超时”等消息,则表示当前未启用或配置 SSH。如果您收到要求输入密码或密码短语的响应,则表示 SSH 已启用。

如果需要,请设置 SSH。在基于 Ubuntu 或 Debian 的系统上,您可以通过运行以下命令来执行此操作

sudo apt-get 安装 openssh-server

在 MacOS 上,SSH 通常是预先安装的。

Windows 上没有预装 SSH(例如 OpenSSH;通过开始 – 设置 – 应用程序 – 应用程序和功能 – 高级组件检查此组件)。

安装 SSH 后,可能需要进行配置,但可以保留默认配置。SSH 服务器配置文件通常位于 Linux 系统上的 /etc/ssh/sshd_config、MacOS 上的 /etc/sshd_config 和 Windows 上的 C:\ProgramData\ssh\sshd_config。

使用管理员权限打开配置文件(sudo nano /etc/ssh/sshd_config)并进行必要的更改:

  • 端口。默认情况下,SSH 监听端口 22。出于安全原因,您可以将其更改为其他端口。
  • AllowUsers 或 AllowGroups。在此指定允许哪些用户或组通过 SSH 连接。
  • PasswordAuthentication。设置为“yes”以允许基于密码的身份验证,或设置为“no”以强制基于密钥的身份验证。
  • PermitRootLogin。如果要允许 root 用户通过 SSH 登录,请设置为“yes”。为了提高安全性,建议将其设置为“no”,并使用普通用户帐户。

完成更改后,保存文件并重新启动 SSH 服务。在基于 Ubuntu 或 Debian 的系统上,命令如下:

sudo 服务 ssh 重启

在 MacOS 上,保存配置文件后会自动重新启动 SSH 服务。

如果启用了防火墙,您将需要使用以下命令允许传入的 SSH 连接:

sudo ufw 允许 ssh

要授予 Windows 权限,请按照以下步骤操作

  1. 打开高级安全 Windows Defender 防火墙。您可以在“开始”菜单中搜索它。
  2. 单击左侧窗格中的“入站规则”。
  3. 单击右侧窗格中的“新规则”。
  4. 选择“端口”并点击“下一步”。
  5. 选择“特定本地端口”,输入SSH端口号(默认为22),点击“下一步”。
  6. 选择“允许连接”并点击“下一步”。
  7. 选择规则适用的网络类型(例如,域、私有、公共)。单击“下一步”。
  8. 为规则提供名称(例如“SSH”)。单击“完成”。

完成这些步骤后,您将需要创建一个 SSH 密钥并使用 SSH 客户端连接到远程服务器。

如何创建 SSH 密钥

如何创建 SSH 密钥

可以在特殊的在线服务中或使用针对操作系统(Windows、Linux、MacOS)定制的实用程序在 PC 上生成 SSH 密钥。

SSH 密钥 Windows

对于 Windows,我们建议使用 PuTTY 实用程序(PuTTYgen 应用程序会自动安装以生成密钥,请从官方网站下载)。密钥生成在应用程序内部通过清晰的 GUI 界面完成,然后必须将公钥(具有 .pub 扩展名)复制到服务器的 authorized_keys 文件中。

SSH 密钥 Linux 和 MacOS

要在 Linux 或 MacOS 系统上创建 SSH 密钥,我们建议使用终端中的两个命令(sudo apt updatesudo apt install openssh-client)和 OpenSSH 服务器(sudo apt updatesudo apt install openssh-server)安装 OpenSSH 客户端。然后继续在终端中工作:

  • 运行命令

ssh-keygen -t rsa -b 2048

  • 选择密钥对的保存路径。

生成公钥/私钥 RSA 密钥对。

输入保存密钥的文件(/root/.ssh/id_rsa):

  • 按“Enter”键将把密钥保存到主目录的 .ssh 目录。
  • 如果您不想每次使用私钥时都输入密码,只需按“Enter”即可。

输入密码(无密码则为空):

再次输入相同的密码:

  • 密钥对已创建。屏幕上将显示其他信息。

id_rsa是私钥文件的标准名称。

id_rsa.pub是公钥文件的标准名称。使用私钥时,必须将此密钥复制到要访问的服务器。

如何通过 SSH 访问服务器

如何通过 SSH 访问服务器

SSH Linux 和 MacOS

对于 Linux/MacOS 连接,与密钥生成一样,使用内置终端实用程序。

  1. 要在终端中建立与服务器的连接,请运行包含两个组件的命令:root – 登录和 192.168.77.77 – 服务器的 IP 地址:
    ssh root@192.168.77.77
  2. 如果您是第一次连接,则需要在弹出通知中确认并按 Enter。
  3. 输入密码并按 Enter。

完成!您已连接到服务器。

SSH 窗口

要使用 Windows 操作系统连接到服务器,您需要登录 PuTTY。这是我们生成密钥的地方。

  1. 在第一个窗口(下面的屏幕截图)中,输入主机名(服务器的 IP 地址)和端口(SSH 的默认端口为 22)。如有必要,请保存会话(保存)。
    SSH 窗口
  2. 然后在弹出的窗口中点击打开并同意,确认连接。
  3. 在打开的控制台中输入 Login as (root) 和 Password。然后按 Enter。

完成!您已连接到服务器。

使用 SSH 的最佳实践

使用 SSH 的最佳实践

  • 出于安全考虑,更改默认 SSH 端口。
  • 实施双因素身份验证。
  • 将 SSH 密钥与个人关联,而不仅仅是多个用户使用的共享帐户。
  • 通过仅允许访问某些区域来执行最小特权原则 (PoLP)。
  • 实施更改 SSH 密钥的策略(不要对多个帐户和会话使用相同的组合)。

一般来说,使用 SSH 安全连接到远程服务器的步骤不止于此。SSH 连接本身比其他连接服务器的方式更安全,而且学习起来也不那么困难。

赞(0)
未经允许不得转载;国外VPS测评网 » 什么是SSH?最新通过SSH访问服务器教程
分享到