如何在 Linux 上创建SSH 密钥 以实现使用“公钥/私钥”SSH登录
  1. 以要设置 ssh 密钥的用户身份登录,在本例中,我们使用用户 test1.

  2. 创建私钥和公钥:

[test1@server4 ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test1/.ssh/id_rsa):
Created directory '/home/test1/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/test1/.ssh/id_rsa.
Your public key has been saved in /home/test1/.ssh/id_rsa.pub.
The key fingerprint is:
<RSA_KEY> test1@server4.oracle.com
The key's randomart image is:
+--[ RSA 2048]----+
| .o... oo.|
| . . .Eooo|
| o . oo+.|
| . + ...+.|
| S o *|
| *o|
| =|
| .|
| |
+-----------------+
[test1@server4 ~]$

说明:
我们可以在 ssh-keygen 上指定一个选项,例如大小和类型。
有关 man ssh-keygen 的更多信息

-b bits指定要创建的密钥中的位数。
对于 RSA 密钥,最小大小为 768 位,默认为 2048 位。
通常,2048 位就足够了。
DSA 密钥必须正好是 FIPS186-2 指定的 1024 位。

-t type指定要创建的密钥类型。
协议版本 1 的可能值为“rsa1”,协议版本 2 的可能值为“dsa”、“ecdsa”或者“rsa”。
新密钥将位于 /home/test1/.ssh。

  1. 移动到我们创建密钥的 .ssh 目录并列出目录中的文件:
[test1@server4 ~]$ cd .ssh
[test1@server4 .ssh]$ ls
id_rsa id_rsa.pub
  1. 将公钥复制到目标服务器(server3):
[test1@server4 .ssh]$ ssh-copy-id -i id_rsa.pub test1@server3
The authenticity of host 'server3 ([ip])' can't be established.
RSA key fingerprint is [RSA_KEY].
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'server3,[ip]' (RSA) to the list of known hosts.
test1@server3's password:
  1. 现在尝试登录机器,使用“ssh 'test1@server3'”,并签入:
.ssh/authorized_keys

以确保我们没有添加我们不期望的另外密钥。

  1. 现在测试密钥,我们应该直接登录目标服务器。
[test1@server4 .ssh]$ ssh test1@server3
[test1@server3 ~]$

注意:如果服务器尚未安装 openssh-clients 软件包,另一种选择是:

$ cat id_rsa.pub | ssh user@server3 "cat >> ~/.ssh/authorized_keys"
日期:2020-09-17 00:13:54 来源:oir作者:oir