如何在 Windows 10 中生成 SSH 密钥?
简介
SSH,即安全外壳,是一种加密协议,它通过不安全的网络(例如互联网)在两台计算机之间提供安全的连接。它允许用户远程安全地访问和控制另一台计算机或服务器。SSH 通过加密两台计算机之间发送的所有数据来工作,包括用于登录的任何用户名和密码。
为了在两台计算机或服务器之间建立安全的 SSH 连接,SSH 密钥是必需的。SSH 密钥是一对加密密钥——一个公钥和一个私钥。
私钥保存在用户的本地计算机上,而公钥则上传到正在访问的远程服务器或计算机上。当尝试通过 SSH 安全地连接到其他设备时,公钥充当用户本地设备的身份标识。
了解 SSH 密钥生成过程
什么是 SSH 密钥?
SSH 密钥,也称为公钥加密密钥,是一种用于保护两台机器之间通信的加密代码。它包含两个密钥——一个存储在您本地机器上的私钥和一个与远程服务器共享的公钥。这些密钥协同工作,通过加密和解密数据来建立安全的通信。
SSH 密钥是如何工作的?
当您尝试使用 SSH 连接到远程服务器时,您的本地机器会向服务器发送其公钥以进行身份验证。如果服务器识别并信任您的公钥,它将生成一条唯一的加密消息,该消息只能使用存储在您本地机器上的私钥解密。
为什么需要生成 SSH 密钥?
在使用远程服务器时,生成 SSH 密钥至关重要,因为它可以在机器之间启用安全通信,而无需密码。密码可能会被泄露或盗取,但由于 SSH 密钥是特定于每个用户/机器组合的唯一代码,因此它们比传统的基于密码的身份验证方法提供了更强大的安全性。
准备在 Windows 10 中生成 SSH 密钥
检查您的系统上是否安装了 OpenSSH 客户端。
在生成 SSH 密钥之前,您需要确保您的 Windows 10 系统上安装了 OpenSSH 客户端。要检查它是否已安装,您可以使用以下步骤 -
以管理员身份打开 PowerShell,方法是按“Windows + X”键,然后从选项中选择“Windows PowerShell(管理员)”。
PowerShell 打开后,键入命令 `ssh` 并按 Enter。
如果 OpenSSH 客户端已安装,您将看到其命令列表及其用法。
如果尚未安装,您将收到一条错误消息,指出 `ssh` 命令未被识别。
如果尚未安装,则安装 OpenSSH 客户端。
要在 Windows 10 上安装 OpenSSH 客户端 -
通过单击“开始”菜单中的齿轮图标或按“Windows + I”进入“设置”。
点击“应用”。
向下滚动并点击“可选功能”。
点击“+ 添加功能”。
从列表中查找并选择“OpenSSH 客户端”。
点击安装。
安装过程可能需要几分钟,具体取决于您的网络速度和系统规格。完成后,您可以通过按照上面步骤 2 中检查其是否已安装的方式验证 OpenSSH 客户端是否已成功安装——这次应该不会返回任何错误;相反,将显示其可用命令的列表,表明它已在您的 Windows 10 机器上正确设置。
在 Windows 10 中生成 SSH 密钥
确保您的 Windows 10 系统中已安装 OpenSSH 客户端后,您可以继续生成 SSH 密钥。此过程涉及使用 PowerShell(Windows 的命令行界面工具)生成密钥对。以下步骤将指导您完成该过程 -
以管理员身份启动 PowerShell
要以管理员身份启动 PowerShell -
按“开始”按钮并搜索“PowerShell”。
右键单击“Windows PowerShell”并选择“以管理员身份运行”。
以管理员身份进入 PowerShell 后,您将能够执行需要提升权限的命令。
键入生成密钥对的命令
在 PowerShell 中,键入以下命令以生成您的 SSH 密钥对 -
ssh-keygen -t rsa -b 4096
此命令将创建一个新的 RSA(Rivest-Shamir-Adleman)密钥对,位长为 4096,这比较短的密钥更安全。您可以根据需要向上或向下调整此值。
选择保存密钥对的位置
键入上述命令后,PowerShell 将提示您输入要存储密钥对的文件位置。您可以按 Enter 接受默认位置或指定您自己的目录路径。
例如 -
Enter file in which to save the key (/c/Users/username/.ssh/id_rsa):
默认情况下,SSH 密钥保存在 `C:\Users\.ssh` 下。您可以按 Enter 接受此路径,或者在需要时输入不同的文件位置。
设置密码以增强安全性
然后,系统将提示您输入可选密码以增强安全性。密码就像保护您的私钥的密码。
如果有人获取了您的私钥,他们将无法在不知道密码的情况下使用它。
Enter passphrase (empty for no passphrase): Enter same passphrase again:
您可以选择设置复杂且唯一的密码,也可以将其留空以不设置密码。
确认密钥已成功生成
输入您首选的文件位置和可选密码后,PowerShell 将生成密钥对并显示确认消息 -
Your identification has been saved in /[filepath]/id_rsa. Your public key has been saved in /[filepath]/id_rsa.pub. The key fingerprint is: [unique code] The key's randomart image is: +--[ RSA 4096]----+ |[ascii art] | +-----------------+
将您的公钥添加到远程服务器
从本地计算机复制您的公钥
有两种方法可以从本地计算机复制您的公钥:使用 PowerShell 命令或使用记事本或任何其他文本编辑器手动复制它。
要使用 PowerShell 复制您的公钥,首先以管理员身份打开 PowerShell。然后运行以下命令 -
powershell Get-Content ~/.ssh/id_rsa.pub | ssh user@host 'cat >> .ssh/authorized_keys'
将“user”和“host”替换为您要访问的远程服务器的用户名和 IP 地址。此命令将从您的本地计算机复制您的公钥,并将其附加到远程服务器上的 authorized_keys 文件中。
将您的公钥粘贴到远程服务器
通过 PowerShell 或手动复制公钥后,最后一步是将其粘贴到每个远程服务器的 authorized_keys 文件中,以便它们识别并接受来自此特定 SSH 密钥对的连接。大多数 Linux 服务器将在此文件位于 `~/.ssh/authorized_keys` 中。
如果此文件尚不存在,请在该位置创建一个。现在,使用 SFTP 客户端或 PuTTY 的 PSCP 实用程序(允许在两台计算机之间安全复制文件)之类的工具将公钥复制到远程服务器。
结论
生成 SSH 密钥对并将您的公钥添加到远程服务器是确保计算机与远程服务器之间安全有效通信的关键步骤。
上述过程概述了如何使用 OpenSSH 客户端在 Windows 10 上轻松生成 SSH 密钥对,通过 PowerShell 或使用记事本等文本编辑器手动复制公钥将其添加到远程服务器,最后将您的公钥粘贴到这些远程服务器中的每个 authorized_keys 文件中。
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP