将SSH密钥复制到另一台计算机
1. 概述
安全连接到其他计算机时,使用 SSH 密钥是最佳实践。要使用我们的 SSH 密钥对,我们必须将公钥复制到远程机器上。在本教程中,我们将观察一些方法来做到这一点。我们将在此处展示的示例假设我们使用ssh-keygen 和默认设置来创建我们的 SSH 密钥对。所有示例都在 Bash 中进行了测试,并且应该也可以在其他 POSIX 兼容的 shell 中工作。
2. 在本地机器上
在我们的本地机器上,我们的 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_rsa的文件包含我们的私钥,我们的公钥存储在 id_rsa.pub中。我们需要将公钥复制到另一台机器上才能使用这个密钥对登录。
3. 手动复制
首先,我们将采用手动方法。让我们使用**scp 命令将公钥复制到另一台机器上**。从我们的主目录中,我们运行:
$ scp .ssh/id_rsa.pub itcodingman@blogdemo
我们必须输入远程机器的密码,然后文件就会被传输。然后,我们也使用我们的用户名和密码登录到另一台机器,将文件放在正确的位置。首先,我们必须确保另一台机器上的主目录也包含一个名为*.ssh*的目录,该目录与我们自己机器上的目录具有相同的访问权限:
$ mkdir .ssh
$ chmod 700 .ssh
这个目录应该包含一个名为 authorized_keys的文件,只有我们自己的用户可以访问:
$ touch .ssh/authorized_keys
$ chmod 644 .ssh/authorized_keys
该文件应包含我们希望允许用户登录的密钥对的所有公钥。让我们将我们传输的公钥附加到这个文件中:
$ cat id_rsa.pub >> .ssh/authorized_keys
从现在开始,每次我们登录到这台机器时,都会使用我们的密钥对,不再需要输入密码。
4. 使用ssh-copy-id
手动方法需要很多步骤。幸运的是,Linux 附带了一个方便的脚本,可以为我们完成所有繁重的工作。此脚本称为ssh-copy-id 。我们只需运行以下命令:
$ ssh-copy-id itcodingman@blogdemo
这将从默认位置获取我们的公钥并将其传输到另一台机器,执行我们在上面手动执行的所有相同步骤。