将 SSH 密钥复制到不同的 Linux 计算机
概述
使用 SSH 密钥时,确保其安全至关重要。我们可以将密钥存储在加密文件中,防止其被意外删除。此外,我们还可以将其离线保存,以确保即使有人试图窃取密钥,也不会泄露。例如,我们可以将其存储在 U 盘上受密码保护的文件夹中。
然而,这并非最佳方法。如果您有多台计算机,并且想要将密钥从一台计算机复制到另一台计算机,那么除了复制密钥文件之外,还有其他更好的方法。本文将向您展示如何在两台不同的计算机之间安全地复制 SSH 密钥。
在我们的计算机上
在我们的本地计算机上,我们将 SSH 密钥存储在名为 .ssh 的子目录中。
drwx------ 5 vagrant vagrant 160 Apr 23 13:11 .ssh
.ssh 目录只能由我们自己的用户访问,并且包含两个文件 −
$ ls -l .ssh total 16 -rw------- 1 vagrant vagrant 1843 Mar 27 15:09 id_rsa -rw-r--r-- 1 vagrant vagrant 413 Mar 27 15:10 id_rsa.pub
我们的私钥存储在 id_rsasubjective.pem 文件中,我们需要将公钥对 (id_rsa.pub) 移动到另一台计算机,以便使用它们对消息进行签名。
手动复制
首先,我们需要手动将公钥从一台计算机复制到另一台计算机。为此,我们使用 scp 命令。
$ scp .ssh/id_rsa.pub our_username@other_machine:
我们需要在终端窗口中输入密码,将文件从我们的计算机传输到远程服务器。之后,我们需要使用我们的用户名和密码登录远程服务器。为了确保我们的主文件夹与本地计算机上的主文件夹具有相同的权限,我们首先需要确保远程服务器的主文件夹也包含一个名为 .ssh 的文件夹,其访问权限与我们计算机上的文件夹相同。
$ mkdir .ssh $ chmod 700 .ssh
此目录应包含一个仅供我们自己的帐户访问的 authorized_keys 文件。
$ touch .ssh/authorized_keys $ chmod 644 .ssh/authorized_keys
输入应为我们希望允许用户登录的每个密钥对的公钥列表。我们将传输的公钥添加到此列表中。
$ cat id_rsa.pub >> .ssh/authorized_keys
登录另一台电脑时,我们不再需要输入密码。
使用 ssh-copy-id
手动方法需要花费很多精力。幸运的是,Linux 自带了一个方便的工具,可以为我们完成所有工作。这个工具叫做 ssh-keygen。我们只需在终端窗口中输入以下命令即可:
$ ssh-copy-id our_username@other_machine
我们将把公钥从当前位置复制到另一台电脑,并执行上面手动执行的所有步骤。
结论
我们学习了如何手动创建用于 GitHub 的 SSH 密钥对。要执行手动创建,我们必须确保所有文件默认都受到限制。最简单的方法是使用 ssh-keygen 命令。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

