如何从 Linux Shell 创建和安装 SSH 密钥如何从 Linux Shell 创建和安装 SSH 密钥如何从 Linux Shell 创建和安装 SSH 密钥如何从 Linux Shell 创建和安装 SSH 密钥
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何从 Linux Shell 创建和安装 SSH 密钥

认真对待网络安全并使用 SSH 密钥访问远程登录。它们是比密码更安全的连接方式。我们将向您展示如何在 Linux 中生成、安装和使用 SSH 密钥。

密码有什么问题?

安全外壳 (SSH) 是用于登录远程 Linux 或类 Unix 计算机上的用户帐户的加密协议。通常,此类用户帐户使用密码进行保护。当您登录到远程计算机时,您必须提供您正在登录的帐户的用户名和密码。

密码是保护对计算资源的访问的最常用方法。尽管如此,基于密码的安全性确实有其缺陷。人们选择弱密码、共享密码、在多个系统上使用相同的密码等等。

SSH 密钥更安全,一旦设置好,它们就像密码一样易于使用。

什么使 SSH 密钥安全?

SSH 密钥是成对创建和使用的。这两个密钥相互关联且加密安全。一个是您的公钥,另一个是您的私钥。它们与您的用户帐户相关联。如果一台计算机上的多个用户使用 SSH 密钥,他们将各自收到一对自己的密钥。

您的私钥(通常)安装在您的个人文件夹中,公钥安装在您需要访问的远程计算机(或多台计算机)上。

您的私钥必须妥善保管。如果其他人可以访问它,那么您的处境就好像他们已经发现了您的密码一样。一个明智且强烈推荐的预防措施是在您的计算机上使用可靠的密码短语对您的私钥进行加密。

公钥可以自由共享,而不会危及您的安全。无法通过检查公钥来确定私钥是什么。私钥可以加密只有私钥可以解密的消息。

当您发出连接请求时,远程计算机会使用您的公钥副本来创建加密消息。该消息包含会话 ID 和其他元数据。只有拥有私钥的计算机(您的计算机)才能解密此消息。

您的计算机访问您的私钥并解密消息。然后它将自己的加密消息发送回远程计算机。除其他事项外,此加密消息包含从远程计算机接收到的会话 ID。

远程计算机现在知道你一定是你所说的那个人,因为只有你的私钥才能从它发送到你计算机的消息中提取会话 ID。

确保您可以访问远程计算机

确保您可以远程连接并登录到远程计算机。这证明您的用户名和密码在远程计算机上设置了一个有效帐户,并且您的凭据是正确的。

在确认可以使用带有密码的 SSH 连接到目标计算机之前,不要尝试使用 SSH 密钥执行任何操作。

在此示例中,一个用户帐户名为 dave 的人登录到名为 howtogeek 的计算机。他们将连接到另一台名为 Sulaco 的计算机。

他们输入以下命令:

ssh dave@sulaco

他们被要求输入密码,然后输入密码,然后连接到 Sulaco。他们的命令行提示更改以确认这一点。

这就是我们需要的所有确认。因此,用户 dave 可以使用 exit 命令与 Sulaco 断开连接:

exit

他们收到断开连接消息,并且他们的命令行提示符返回到 dave@howtogeek。

创建一对 SSH 密钥

这些说明已在 Linux 的 Ubuntu、Fedora 和 Manjaro 发行版上进行了测试。在所有情况下,过程都是相同的,并且无需在任何测试机器上安装任何新软件。

要生成 SSH 密钥,请键入以下命令:

ssh-keygen

生成过程开始。系统会询问您希望将 SSH 密钥存储在何处。按 Enter 键接受默认位置。该文件夹的权限将确保它仅供您使用。

现在将要求您输入密码。我们强烈建议您在此处输入密码。记住它是什么!您可以按 Enter 键设置为没有密码短语,但这不是一个好主意。由三个或四个不相关的单词组成的密码短语,串在一起将成为一个非常强大的密码短语。

系统将要求您再次输入相同的密码,以验证您输入的是您认为输入的内容。

SSH 密钥是为您生成和存储的。

您可以忽略显示的“randomart”。某些远程计算机可能会在您每次连接时向您展示它们的随机艺术作品。这个想法是,如果随机艺术发生变化,您将识别出来,并对连接产生怀疑,因为这意味着该服务器的 SSH 密钥已被更改。

安装公钥

我们需要在远程计算机 Sulaco 上安装您的公钥,以便它知道公钥属于您。

我们使用 ssh-copy-id 命令执行此操作。此命令与常规 ssh 命令一样连接到远程计算机,但它不会让您登录,而是传输公共 SSH 密钥。

ssh-copy-id dave@sulaco

尽管您没有登录到远程计算机,但您仍必须使用密码进行身份验证。远程计算机必须识别新的 SSH 密钥属于哪个用户帐户。

请注意,您必须在此处提供的密码是您正在登录的用户帐户的密码。这不是您刚刚创建的密码。。

验证密码后,ssh-copy-id 会将您的公钥传输到远程计算机。

您将返回到计算机的命令提示符。您没有连接到远程计算机。

使用 SSH 密钥连接

让我们按照建议尝试连接到远程计算机。

ssh dave@sulaco

因为连接过程需要访问您的私钥,并且因为您用密码保护了 SSH 密钥,所以您需要提供密码才能继续连接。

输入您的密码,然后单击“解锁”按钮。

在终端会话中输入密码后,只要终端窗口打开,就无需再次输入。您可以根据需要连接和断开任意数量的远程会话,而无需再次输入密码。

您可以勾选“每当我登录时自动解锁此密钥”选项的复选框,但这会降低您的安全性。如果您让计算机无人看管,任何人都可以连接到拥有您的公钥的远程计算机。

输入密码后,您将连接到远程计算机。

要再次端到端地验证该过程,请使用 exit 命令断开连接,然后从同一终端窗口重新连接到远程计算机。

ssh dave@sulaco

您将连接到远程计算机,无需密码或口令。

没有密码,但增强了安全性

网络安全专家谈论一种叫做安全摩擦的事情。这是获得额外安全性所需忍受的轻微痛苦。采用更安全的工作方法通常需要一些额外的步骤或两个步骤。大多数人不喜欢它。他们实际上更喜欢较低的安全性和缺乏摩擦。这就是人性。

使用 SSH 密钥,您可以获得更高的安全性和便利性。这绝对是双赢的。

©2015-2025 艾丽卡 support@alaica.com