如何在 Linux 上生成 SSH 密钥
了解如何生成 SSH 密钥并安全登录到远程服务器。
要点
- SSH 密钥是一种无需密码即可访问远程服务器的安全方法。它们由公钥和私钥组成。
- 在 Linux 上使用 ssh-keygen 命令生成 SSH 密钥对,并考虑添加密码以增强安全性。
- 使用 ssh-copy-id 或手动将密钥粘贴到authorized_keys 文件中,将 SSH 公钥复制到远程服务器。
SSH 密钥可让您在授予无密码访问权限的同时保证远程服务器帐户的安全。在 Linux 上生成一个很容易。
什么是 SSH 密钥?
SSH 密钥是一种以加密方式生成的密钥,可让您登录到远程计算机。 SSH 密钥是包含公钥和私钥的“密钥对”。您可以将公钥复制到远程计算机,它们将使用它来对您进行身份验证。顾名思义,私钥是私有的,应该保留在您的本地计算机上。
不要与任何人分享您的 SSH 私钥!
登录时,远程服务器将使用 SSH 来比较您的公钥和私钥。如果它们匹配,您就有权进入远程系统。该密钥对系统可让您轻松设置帐户,同时保持安全性。
如何生成远程密钥
要生成 SSH 密钥对,只需在 Linux 命令行上使用“ssh-keygen”命令即可。它将提示您选择文件位置,然后输入并确认密码(如果您选择使用密码)。密码短语允许您为密钥添加额外的安全层。
如果您使用密码,请不要忘记!如果忘记该密钥,您将无法使用该密钥登录。
如果您想无需密码登录,只需将密码留空即可。
默认情况下,ssh-keygen 使用 Ed25519 算法。这对于大多数情况来说已经足够了,因为它非常安全。您可以使用 -t 标志指定所需的算法类型。通常您不需要这样做,除非服务器不支持您使用的任何算法。您可以阅读 ssh-keygen 手册页以了解如何生成不同的密钥对。
获取远程计算机的新 SSH 密钥
现在您已经生成了密钥对,您需要将密钥复制到远程服务器。有两种方法可以做到这一点。
第一个也是最简单的方法是使用 ssh-copy-id 实用程序。为此,只需使用远程服务器帐户的用户名和地址调用它:
ssh-copy-id user@example.com
输入您的密码,它将复制您的私钥。
您现在可以登录远程服务器:
ssh user@example.com如果这不起作用,您必须手动复制并粘贴您的公钥。您的公钥将是以“.pub”结尾的文件,位于您的主目录中的 .ssh 目录中。打开它,然后将其中的内容复制并粘贴到远程计算机上的 .ssh/authorized_keys 文件中。
保存文件,您现在就可以使用 SSH 登录到服务器。确保该文件只能由您写入,否则可能会遇到错误。




