如何在 Windows、Mac 和 Linux 上生成 SSH 密钥

如果您希望远程连接到计算机,最好和最安全的方法之一是使用安全外壳(Shell)( SSH ) 连接。这会在您和远程主机之间创建加密连接,确保发送的数据不会被截获或以任何方式监控。 

您也可以将SSH用作其他流量的隧道,例如通过 SSH 的安全 VNC 连接(secure VNC connection over SSH)。使SSH连接更加安全的一种方法是使用SSH密钥,它用 617 位加密密钥代替了可能容易破解的密码。下面介绍如何在WindowsMacLinux计算机上生成新的SSH密钥。

什么是 SSH 密钥?(What Are SSH Keys?)

SSH密钥允许您使用(SSH)Secure Shell协议在不使用密码的情况下创建与远程服务器或 PC 的安全连接。SSH密钥是成对创建的,一个私有密钥和一个公共密钥保持连接——一个不能在没有另一个的情况下使用。

在大多数情况下,公钥保留在远程 PC 或服务器上以加密连接。然后使用私钥对该远程设备进行身份验证,允许您在不提供密码的情况下连接和使用它。 

(Public)SSH公钥和私钥是同一个整体的两个部分——没有私钥,您无法使用公钥进行身份验证并建立连接,没有公钥,私钥将毫无用处。您可以在Windows(Windows)MacLinux上生成新的SSH密钥,然后将公钥(public )传输到远程设备。

然后将私钥(private)安全地存储在您的 PC 或Mac上。安全地保存此密钥的副本很重要(例如,使用密码管理器(password manager))。如果丢失,您可能无法重新建立远程连接。 

同样重要的是不要与他人共享您的公钥或私钥,尤其是您的私钥(或可能解密它的密码)。有了私钥,流氓用户将能够与您的远程设备建立连接,而无需任何额外的身份验证。

如何使用 Windows 生成 SSH 密钥(How to Use Windows to Generate SSH Keys)

您可以使用Windows使用内置的OpenSSH客户端或流行的第三方PuTTY客户端生成SSH密钥。如果您更喜欢使用图形用户界面 ( GUI ) 创建新的SSH密钥,PuTTY是最佳选择。如果您更愿意使用内置软件,那么请改用OpenSSH(通过Windows PowerShell)。

通过 Windows PowerShell 使用 OpenSSH(Using OpenSSH via Windows PowerShell)

  1. 如果您想使用OpenSSH,您需要首先检查它是否已启用。为此,请右键单击“开始(Start)”菜单并选择“设置”(Settings)

  1. 设置(Settings)菜单中,选择应用程序(Apps )>应用程序和功能(Apps & features )>可选功能(Optional features)

  1. 查看OpenSSH 客户端(OpenSSH Client)条目的可选功能(Optional features)菜单。如果不存在,请选择Add a feature

  1. 选择OpenSSH Client选项,然后选择Install进行安装。让Windows(Windows)稍等片刻来安装所需的软件。如果您想使用SSH连接到您的Windows PC,请确保也选择OpenSSH Server选项。

  1. 安装OpenSSH(OpenSSH),右键单击开始(Start)菜单并选择Windows PowerShell (Admin)

  1. 在新的Windows PowerShell窗口中,键入ssh-keygen并选择回车(enter )键。此时您可以为您的密钥键入一个新的保存位置和文件名,或者只需再次按回车(enter)键将您的文件保存在C:\Users\user\.ssh\ 文件夹中(将用户(user)替换为您自己的用户目录)。

    ssh-keygen 工具将默认使用RSA加密,但您可以通过键入ssh-keygen -t method来切换到另一种加密形式,将method替换为可用的加密选项之一(dsa、ecdsa、ed25519、rsa)。

  1. 接下来,您将需要输入密码。这会在您的 PC 上加密您的私钥,通常建议这样做,尽管它不是必需的。您可以使用容易记住的单词或短语,但您也可以在此处使用安全密码。(use a secure password)输入(Type)您的密码并选择enter进行确认,或者将其留空并选择enter将其留空。

  1. 添加密码后,Windows将在(Windows)C:\Users\user\.ssh\ 文件夹中生成所需的密钥(将user替换为您自己的用户文件夹名称)。如果您选择使用默认文件名,则id_rsa.pub文件是您的公钥,而id_rsa(没有扩展名)是您的私钥。一旦您生成了您的密钥,您需要移动您的公钥密钥 ( id_rsa.pub ) 到远程 PC、Mac或服务器上的.ssh目录。(.ssh)

使用腻子(Using PuTTY)

众所周知的PuTTY SSH客户端是大多数Windows用户的默认客户端。它包括其他几个用于建立SSH连接的工具,包括PuTTYgen,一个用于生成新SSH密钥的工具。

  1. 要使用PuTTY生成SSH密钥,请为您的 PC 下载 PuTTY(download PuTTY for your PC)并安装它。安装后,从Start菜单启动PuTTYgen(包含的SSH生成器工具),从Type of key to generate选项中选择(Type of key to generate)RSA,然后选择Generate。您也可以选择一种替代加密选项,但以下步骤可能会有所不同。

  1. 生成密钥的部分过程是随机移动鼠标。使用鼠标或触控板在进度条正下方的区域执行此操作,直到生成密钥对。

  1. 如果您想为您的密钥添加密码短语,请在“密钥密码短语(Key passphrase )”和“确认密码短语(Confirm passphrase)”框中输入此密码,然后选择“保存公钥(Save public key)”和“保存私钥(Save private key)”以保存您的密钥。您还可以在Public key for pasteing into OpenSSH authorized_keys(Public key for pasting into OpenSSH authorized_keys )框中选择文本,然后右键单击并选择Copy以手动将其复制并粘贴到文件中。

  1. 保存密钥后,您可以将公钥(public key )移动到远程 PC、Mac或服务器。对于您的private key,您可能需要将其移动到您的C:\Users\user\.ssh\文件夹(将user替换为您的正确用户目录)以将其与您首选的SSH客户端一起使用。

如何在 Linux 或 Mac 上生成 SSH 密钥(How to Generate SSH Keys on Linux or Mac)

OpenSSH是用于(OpenSSH)SSH管理的黄金标准工具集,与Windows版本一样,ssh-keygen工具仍然是在(ssh-keygen)MacLinux计算机上生成新SSH密钥的最佳方式。

因此,用于生成SSH密钥的(SSH)GUI工具很少见,通常不推荐使用。由于所有Mac计算机和几乎所有 Linux 发行版(all Linux distributions)都包含OpenSSH工具,因此以下步骤应该适用于这两个平台。

  1. 首先,在您的 Linux PC 或Mac上打开一个新的终端窗口。如果您想使用Mac生成SSH密钥,您可以使用Launchpad 启动(Launchpad)终端(Terminal)应用程序。在Linux(Linux) PC上打开新终端的步骤会有所不同,具体取决于您的发行版。

  1. 在 Linux PC 或Mac上的新终端窗口中,键入ssh-keygen并选择回车(enter )键。与Windows上的ssh-keygen一样,LinuxMac版本默认使用RSA加密。如果您更喜欢使用其他形式的加密,请键入ssh-keygen -t 方法,(ssh-keygen -t method, )方法(method)替换为您希望使用的加密形式(例如dsa、ecdsa、ed25519、rsa)。

  1. 接下来,您需要确定要保存新SSH密钥的位置——默认文件名和位置将显示在终端窗口的圆括号中。如果您想将密钥保存在其他地方并使用不同的文件名,请在此处键入新位置和文件名,然后选择回车(enter )键。

  1. 接下来,您需要输入密码来加密您的私钥(如果您想使用一个)。输入您的密码两次,或选择两次输入(enter)以将密码留空(尽管不推荐这样做)。

  1. 此时,您的SSH密钥将在您指定的保存位置生成,并使用默认的id_rsa文件名进行 RSA 加密(公钥为id_rsa.pub ,私钥为(id_rsa.pub)id_rsa)。您需要将您的公钥 ( id_rsa.pub ) 移动到您的远程 PC、Mac或服务器,以便能够使用SSH建立连接。

使用 SSH 建立安全连接(Making Secure Connections Using SSH)

生成SSH密钥后,您需要确保将公钥复制到远程 PC、Mac或服务器。这与您的私钥相关联,允许您首选的SSH客户端无需典型密码即可建立安全的SSH连接。(SSH)例如,您可以使用 SSH 远程连接到另一台 Mac(use SSH to connect to another Mac remotely)

安全 SSH(Secure SSH)连接还可以帮助您使用SSH隧道绕过学校或工作场所的防火墙。(get around a school or workplace firewall)您还可以使用SSH连接(和更新)Raspberry Pi(connect to (and update) a Raspberry Pi)或其他基于 Linux 的 PC 和服务器。但是,如果您想在Windows 10上执行此操作,您需要确保启用OpenSSH服务器。



About the author

我是一名技术人员,多年来一直在音频和用户帐户领域工作。我有使用 Windows 和 Mac 电脑以及苹果产品的经验。自 2007 年以来,我还一直在教授 Apple 产品的使用。我的主要专业领域是用户帐户和家庭安全。除此之外,我还使用过各种软件程序,包括 Windows 7 Home Premium、8.1 Pro、10 Pro 和 12.9 Mojave。



Related posts