SSH 密钥生成¶
在这篇文章中
使用 SSH 密钥可以让您避免输入远程用户的密码,并用难以破解的 SSH 密钥取而代之,从而使服务器管理过程更加安全。
信息
SSH 密钥是一种用于在使用 SSH 协议连接到远程服务器时验证用户身份的加密密钥。
SSH 密钥有两种类型:
-
**公钥**是可以发送到远程服务器用于身份识别的密钥。它用于加密数据,这些数据只能用相应的私钥解密。私钥也可以用于加密数据,然后由公钥解密。
-
**私钥**是必须在用户本地计算机上保密的密钥。它用于解密使用公钥加密的数据。
要使用 SSH 密钥连接到服务器,您需要在本地计算机上创建一对密钥(公钥和私钥),然后将公钥复制到远程服务器。之后,您就可以在不提供远程用户密码的情况下连接到服务器。通常,私钥在生成时会设置密码,因此在连接时您仍然需要提供该密码。
Linux/MacOS 操作系统的 SSH 密钥生成¶
创建 SSH 密钥¶
-
通过 SSH 连接到服务器。
-
在本地计算机上生成 SSH 密钥。为此,请在终端中运行以下命令:
运行命令后,系统将提示您选择密钥的文件名和位置。默认情况下,它存储在
/.ssh/目录中,文件名为id_rsa。然后,系统将提示您输入密码短语以进一步保护 SSH 连接。您不必输入密码短语:
Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:密钥的指纹及其图像将显示在终端上:
The key's randomart image is: +---[RSA 3072]----+ | . ..o+=| | . . o +.| | o . o . o.o| | = o . + oo| | . S . + o o| | . = ..o . | | o ..=o+ | | ..+=Xo+ | | .E=*=Oo | +----[SHA256]-----+您可以使用命令查看已创建的 SSH 密钥:
cat ~/.ssh/id_rsa- 查找私钥;cat ~/.ssh/id_rsa.pub- 查找公钥。
接下来,您需要将公钥添加到服务器。为此,请输入以下命令,将
username替换为服务器上的用户名,将ip_address替换为服务器的 IP 地址:- <username> — 用户名;
- <ip_address> — 服务器公网 IP 地址。
输入命令后,系统将提示输入服务器上账户的密码。输入密码后,公钥将被复制到服务器并添加到服务器上的
~/.ssh/authorised_keys文件中。完成上述步骤后,您需要输入以下命令以使用 SSH 密钥连接到服务器:
在 Linux 重装期间创建 SSH 密钥¶
可以在操作系统重装期间添加 SSH 密钥。为此,在 Invapi 中开始安装新操作系统之前,请在 Reinstall 选项卡中填写 Public ssh key 字段:

备注
有关操作系统重装请求的示例,请参阅 操作系统重装 API 方法
Windows 的 SSH 密钥生成¶
信息
在 Windows 操作系统上生成 SSH 密钥有两种方法:一种使用 OpenSSH 客户端,另一种使用 PuTTY 客户端。以下是使用任一方法生成密钥的说明。
OpenSSH 客户端¶
要使用 OpenSSH 客户端生成 SSH 密钥,您需要执行以下步骤:
-
检查是否存在 OpenSSH 客户端。为此,请转到 Parameters >> Applications >> Additional Components,并在搜索栏中输入
SSH。如果未安装客户端,请单击
Add Component按钮,并使用搜索栏找到它。然后单击Install按钮。您还可以使用命令行检查 openSSH 客户端:
-
打开命令提示符(快捷键 Win+R >> 输入
cmd>> 按OK),并输入以下命令:运行命令后,系统将提示您选择密钥的文件名和位置。默认情况下,它存储在
/.ssh/目录中,文件名为id_rsa。然后,系统将提示您输入密码短语以进一步保护 SSH 连接。这是可选的:
Enter file in which to save the key (.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:```密钥的指纹及其图像将显示在终端上:
-
要检查生成的密钥,请切换到本地设备上之前指定的目录。例如,
C:\Users\user_name\.ssh:
PuTTY¶
-
在本地设备上下载并安装 Putty 客户端;
-
从
Start菜单运行puttygen.exe。 -
选择
RSA密钥类型并按下Generate按钮:
-
在 Key Generation 窗口中多次随机移动鼠标,此操作将创建随机噪声:

-
若要使用密码保护密钥,请在 Key passphrase 中输入密码,并在 Confirm passphrase 中重复输入。如果不需要额外保护,请将这些字段留空:

单击 Save Private Key 按钮以保存私钥。
单击 Save Public Key 按钮将公钥保存到磁盘。此密钥将用于服务器上的身份验证。
-
将 SSH 公钥复制到服务器:
- </path/to/file> — 本地计算机上公钥的完整路径;
- <username> — 用户名;
- <ip_address> — 服务器公网 IP 地址;
- </path/to/destination> — 服务器上存储公钥的路径。
在 Windows 重装期间创建 SSH 密钥¶
可以在操作系统重装期间添加 SSH 密钥。为此,在 Invapi 中开始安装新操作系统之前,请在 Reinstall 选项卡中填写 Public ssh key 字段:

备注
有关操作系统重装请求的示例,请参阅 操作系统重装 API 方法
删除 SSH 密钥¶
要删除 SSH 密钥,您必须
- 打开
authorised_keys文件,该文件通常位于/.ssh/目录中。您可以使用命令行文本编辑器,如 Vim 或 Nano。 - 找到包含您要删除的公钥的行。每一行对应一个密钥。
- 从
authorized_keys文件中删除包含您要移除的公钥的行。 - 保存更改并关闭文件。
- 重启服务器上的 SSH 服务以使更改生效。在大多数情况下,可以使用
sudo service ssh restart或sudo systemctl restart sshd来完成。 - 检查该密钥是否不再用于 SSH 登录。
备注
如果用户的本地设备上安装了 Windows 操作系统,您还可以找到 known_hosts 文件并删除其中包含相应 SSH 密钥的行