SSH 完整指南:使用服务器、客户端和密钥

传递 SSH 凭据以在服务器上使用
服务器端配置选项
禁用密码验证
更改 SSH 守护程序运行的端口
限制可以通过 SSH 连接的用户
禁用 root 登录
← 返回所有博客文章
SSH 完整指南:使用服务器、客户端和密钥
大卫·贾尼克
大卫·贾尼克
更新于 24/07/2024 – 22 分钟阅读
博客
SSH 是一种安全协议,用作远程连接 Linux 服务器的主要手段。通过启动远程 shell 提供文本界面。连接后,在本地终端中输入的所有命令都会发送到远程服务器并在那里执行。

在这篇激烈的指南中,我们将介绍一些使用 SSH 进行连接的常见方法,以帮助您实现目标。当您需要了解如何连接到服务器或如何以各种方式配置服务器时,可以将其用作快速指南。

如何使用本指南:

根据您想要实现的目标,使用以下部分。大多数部分不以任何其他部分为条件,因此您可以独立使用以下示例。
要查找您需要的部分,请使用本页左侧的“目录”菜单(当页面较宽时)或浏览器中的搜索功能 (CTRL+F)。
复制并粘贴提供的命令行示例,将突出显示的值替换为您自己的.
SSH 概述
连接到远程 Linux 服务器的最常见方法是通过 SSH。 SSH 代表 Secure Shell,提供一种安全可靠的方式来远程执行命令、更改和配置服务。当您通过 SSH 连接时,您可以使用远程服务器上存在的帐户登录。

SSH 的工作原理
通过 SSH 连接后,您将进入 shell 会话,这是一个文本界面。您可以与其中的服务器进行通信。在 SSH 会话期间,您在本地终端中输入的所有命令都将通过加密的 SSH 隧道发送并在服务器上执行。

VPS中心

免费试用我们的服务器和域管理应用程序。您会感觉自己像一位经验丰富的管理员。

SSH 连接是使用客户端-服务器模型完成的。这意味着远程计算机上必须运行名为 SSH 守护程序的软件才能建立 SSH 连接。该软件侦听特定网络端口上的连接,验证连接请求,并在用户提供正确的凭据时创建适当的环境。

用户计算机上必须有 SSH 客户端。该软件可以使用 SSH 协议进行通信,并且可以获取有关要连接的远程主机的信息。用于身份验证的用户名和凭据。客户端还可以指定有关其希望建立的连接类型的某些详细信息。

SSH 如何验证用户身份

客户端通常使用密码(安全性较低且不推荐)或非常安全的 SSH 密钥进行身份验证。

密码登录经过加密,易于新用户理解。然而,自动化机器人和恶意用户经常会反复尝试访问允许密码登录的帐户,这可能会导致安全风险。因此,我们建议您始终为大多数配置设置 SSH 密钥身份验证。

SSH 密钥是一组相应的可用于身份验证的加密密钥。每组包含一个公钥和一个私钥。公钥可以自由共享,无需担心,而私钥则必须严密保管,不得泄露给任何人。

要使用 SSH 密钥进行身份验证,用户的本地计算机上必须有 SSH 密钥对。在远程服务器上,必须将公钥复制到用户主目录~/.ssh/authorized_keys中的文件中。该文件包含一个公钥列表,每行一个,这些公钥被授权登录到该帐户。

 

 

这篇评论文章探讨了手机号码数据对购买 手机号码数据 意向的影响。研究发现,通过短信或电话直接沟通可以提高消费者的信任度和品牌忠诚度。通过手机号码提供的个性化优惠和即时支持会显着影响购买决策。利用手机数据的企业可以增强客户参与度,从而提高转化率和客户保留率。

 

当客户端连接到主机并想要使用 SSH 密钥身份验证时,它会将此意图通知服务器并告诉它要使用哪个公钥。然后,服务器检查其authorized_keys文件中的公钥,生成随机字符串,并使用公钥对其进行加密。该加密消息只能使用关联的私钥来解密。服务器将此加密消息发送到客户端以测试它是否确实拥有关联的私钥。

收到此消息后,客户端使用私钥对其进行解密,并将显示的随机字符串与先前协商的会话 ID 结合起来。然后,它根据该值生成 MD5 哈希值并将其发送回服务器。服务器已经拥有原始消息和会话 ID,因此它可以比较从这些值生成的 MD5 哈希值来确定客户端是否拥有私钥。

Freelo – 任务和项目管理工具

加入、邀请您的团队和客户、划分工作并观察任务的进展。

现在您已经了解了 SSH 的工作原理,我们可以开始查看一些示例,这些示例演示了使用 SSH 的不同方法

生成并使用 SSH 密钥
在本节中,我们将介绍如何在客户端计算机上生成 SSH 密钥以及如何将公钥分发到要使用它们的服务器。如果您尚未生成密钥,那么这部分是一个很好的起点。

生成 SSH 密钥对
在本地计算机上生成新的 SSH 公钥-私钥对是无需密码即可与远程服务器进行身份验证的第一步。除非有令人信服的理由使用密码进行身份验证,否则您应该始终使用 SSH 密钥进行身份验证。

可以使用多种加密算法来生成 SSH 密钥,包括 RSA、DSA 和 ECDSA。 RSA 密钥通常是首选,并且是默认密钥类型。

要在本地计算机上生成 RSA 密钥对,请键入以下命令:

# ssh 密钥生成器

生成 rsa 公钥/私钥对。

输入要保存密钥的文件 (/home/demo/.ssh/id_rsa):
此提示允许您选择存储 RSA 私钥的位置。按 ENTER 键保留默认设置,该设置将它们存储在用户主目录中的隐藏 .ssh 目录中。保留选择的默认位置将允许 SSH 客户端自动查找密钥。

输入密码(空白表示无密码):

再次输入相同的密码:

下一个提示允许您输入任意长的密码以保护私钥。默认情况下,每次使用私钥时,您都需要输入此处设置的任何密码作为额外的安全措施。如果您不想输入密码,可以按 ENTER 将其留空。但是,请记住,这将允许任何控制您的私钥的人登录您的服务器。

如果您选择输入密码,则键入时不会显示任何内容。这是一项安全措施。

输出
此过程生成了一个 RSA SSH 密钥对,该密钥对位于用户主目录中隐藏的.ssh目录中。这些文件是:

~/.ssh/id_rsa :私钥。不要共享此文件!

~/.ssh/id_rsa.pub :关联的公钥。这可以自由共享,不会产生任何后果。

生成具有更多位的 SSH 密钥对
SSH 密钥默认为 2048 位。这通常被认为是足够好的安全性,但您可以输入更多位来获得更强的密钥。

为此,请指定具有所需位数的 -bs 参数。大多数服务器支持至少 4096 位的密钥。出于 DDOS 保护目的,可能不接受较长的密钥:

# ssh-keygen -b 4096
如果您之前创建了另一个密钥,系统会询问您是否要覆盖以前的密钥:

覆盖(是/否)?
如果您选择“是”,您之前的密钥将被覆盖,您将无法再使用该密钥登录服务器。因此,请务必小心覆盖密钥。

删除或更改私钥密码

如果您已经为私钥生成了密码并想要更改或删除它,您可以轻松完成此操作。

注意:要更改或删除密码,您必须知道原始密码。如果您丢失了密钥密码,则无法回忆,并且需要生成新的密钥对。

要更改或删除密码,只需键入以下命令:

# ssh-keygen -p

输入密钥为(/root/.ssh/id_rsa)的文件:
您可以输入要更改的键的位置或按ENTER接受默认值:

输入旧密码:
输入您要更改的旧密码。然后 太原手机号码列表 系统将提示您输入新密码:

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

再次输入相同的密码:
在此处输入新密码或按ENTER 键删除密码。

查看 SSH 密钥指纹
每个 SSH 密钥对共享一个加密“指纹”,可用于唯一地标识密钥。这在各种情况下都很有用。

要查找 SSH 密钥指纹,请键入以下命令:

# ssh-keygen -l

输入密钥所在的文件(/root/.ssh/id_rsa):

如果这是该键的正确位置,您可以按ENTER。否则,请输入正确的位置。将显示一个字符串,其中包含密钥的位长度、指纹、为其创建的帐户和主机以及所使用的算法:

输出

4096 8e:c4:82:47:87:c2:26:4b:68:ff:96:1a:39:62:9e:4e 演示@测试 (RSA)
使用 SSH-Copy-ID 将 SSH 公钥复制到服务器
您可以使用多种方法将公钥复制到服务器以进行无密码身份验证。

如果您当前在服务器上配置了基于密码的 SSH 访问并安装了 ssh-copy-id 工具,则这是一个简单的过程。ssh-copy-id工具包含在许多 Linux 发行版的 OpenSSH 软件包中,因此很可能默认安装它。

如果您有此选项,您可以通过键入以下内容 动态链接库的 5 个秘密 轻松转移您的公钥:

# ssh-copy-id用户名@remote_host
这将提示您输入远程系统上用户帐户的密码:

 

ECDSA 密钥指纹为 fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe。

您确定要继续连接吗(是/否)?是的

/usr/bin/ssh-copy-id:信息:尝试使用新密钥登录,以过滤掉任何已安装的密钥

/usr/bin/ssh-copy-id: INFO: 1 个密钥仍需安装 – 如果现在提示您安装新密钥

demo@111.111.11.111的密码:
输入密码后,~/.ssh/id_rsa.pub密钥的内容将追  加到~/.ssh/authorized_keys文件的末尾

输出

添加的钥匙数量:1

 

滚动至顶部