如何在 CentOS 8 / RHEL 8 上设置 SSH 无密码登录

[ad_1]

SSH 是一个客户端和服务器协议,它帮助我们通过加密隧道安全地访问网络上的远程系统。 SSH 具有内置的文件传输机制 (SCP) 来通过网络传输文件和目录,它比 FTP(文件传输协议)更安全。

在较大的环境中,每次访问远程机器都要输入密码是一件很痛苦的事情。 因此,为了方便登录,我们可以使用 SSH 无密码功能来访问远程机器,而无需输入密码。

在这里,我们将看到如何在 CentOS 8 / RHEL 8 上设置 SSH 无密码登录。

假设

这里我们有两台机器有两个不同的用户名。

主机名 IP地址 用户 目的
server.itzgeek.local 192.168.0.10 拉吉 CentOS 8 / RHEL 8 源机
client.itzgeek.local 192.168.0.20 内存 CentOS 8 / RHEL 8 目的地机器

在这里,我将使用主机名而不是 IP 地址。

按照步骤创建无密码登录。

在 CentOS 8 上设置 SSH 无密码登录

要启用 SSH 无密码登录,我们必须将本地机器的公钥条目放在远程机器的 ~/.ssh/authorized_keys (~代表用户的主目录)文件。

我们可以通过两种方式设置 SSH 无密码登录。 选择任何一种方式。

  1. 使用 ssh-copy-id 命令
  2. 手动复制密钥

使用 ssh-copy-id 命令

此方法涉及在源计算机上生成 SSH 密钥对,然后使用单个命令将其放置在目标计算机上(ssh 复制 ID)。

ssh 复制 ID 命令将生成的 SSH 公钥附加到现有密钥中 ~/.ssh/authorized_keys 目的地的文件。 如果 ~/.ssh/authorized_keys 文件不存在于目标机器上,该命令将创建它并放置 SSH 公钥。

生成公钥

登录到源计算机并使用以下命令创建 SSH 密钥对。

[[email protected] ~]$ ssh-keygen

输出:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/raj/.ssh/id_rsa):
Created directory '/home/raj/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/raj/.ssh/id_rsa.
Your public key has been saved in /home/raj/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:8BuI21rECULGQMs3BtU2o3jHyHghg+p5RE8naQTQP2A [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|+**o+..          |
|o=+E X .         |
|.oX+& *          |
|.ooO.X =         |
|. = o * S        |
| o . +   o       |
|  . . o .        |
|     o           |
|    .            |
+----[SHA256]-----+

创建后,你会发现两个文件 id_rsaid_rsa.pub 在 – 的里面 .ssh 目录。 我们将使用 id_rsa.pub (公钥)用于 SSH 无密码登录。

[[email protected] ~]$ ls -al ~/.ssh/

输出:

total 8
drwx------. 2 raj raj   38 Nov  7 21:50 .
drwx------. 3 raj raj   74 Nov  7 21:50 ..
-rw-------. 1 raj raj 1831 Nov  7 21:50 id_rsa
-rw-r--r--. 1 raj raj  406 Nov  7 21:50 id_rsa.pub

复制公钥

使用 ssh 复制 ID 随附的命令 openssh-clients 带有输入文件的包 id_rsa.pub.

[[email protected] ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

输出:

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/raj/.ssh/id_rsa.pub"
The authenticity of host 'client.itzgeek.local (192.168.0.20)' can't be established.
ECDSA key fingerprint is SHA256:z4TLSbno9MLNF1ucNq4gtMlLQDVgrfLKEt8JguchKdo.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

手动复制密钥

生成公钥

此方法涉及在源计算机上生成 SSH 密钥对,并通过手动登录将其放置在目标计算机上。

首先,登录到源计算机并使用以下命令创建 SSH 密钥对。

[[email protected] ~]$ ssh-keygen

输出:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/raj/.ssh/id_rsa):
Created directory '/home/raj/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/raj/.ssh/id_rsa.
Your public key has been saved in /home/raj/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:8BuI21rECULGQMs3BtU2o3jHyHghg+p5RE8naQTQP2A [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|+**o+..          |
|o=+E X .         |
|.oX+& *          |
|.ooO.X =         |
|. = o * S        |
| o . +   o       |
|  . . o .        |
|     o           |
|    .            |
+----[SHA256]-----+

创建后,你会发现两个文件 id_rsaid_rsa.pub 在 – 的里面 .ssh 目录。 我们将使用 id_rsa.pub (公钥)用于 SSH 无密码登录。

[[email protected] ~]$ ls -al ~/.ssh/

输出:

total 8
drwx------. 2 raj raj   38 Nov  7 21:50 .
drwx------. 3 raj raj   74 Nov  7 21:50 ..
-rw-------. 1 raj raj 1831 Nov  7 21:50 id_rsa
-rw-r--r--. 1 raj raj  406 Nov  7 21:50 id_rsa.pub

复制公钥

您可以使用 scp 命令复制 id_rsa.pub 到目的地或复制内容 id_rsa.pub 文件并将其粘贴到 ~/.ssh/authorized_keys 目标机器的文件。
方法一

登录目标机器并创建 .ssh 用户主目录中的目录(如果不存在)。

[[email protected] ~]$ mkdir ~/.ssh

[[email protected] ~]$ chmod 700 ~/.ssh

使用 SCP 命令复制 id_rsa.pub 到目标机器的 /tmp 目录。

[[email protected] ~]$ scp -pr  ~/.ssh/id_rsa.pub [email protected]:/tmp

您需要输入目的地的密码,因为我们尚未配置无密码登录。

将公钥放在 授权密钥 用于无密码登录的文件。

[[email protected] ~]$ cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys

更新文件的权限。

[[email protected] ~]$ chmod 600 ~/.ssh/authorized_keys

方法二

登录目标机器并创建一个 .ssh 用户主目录中的目录(如果不存在)。

[[email protected] ~]$ mkdir ~/.ssh

[[email protected] ~]$ chmod 700 ~/.ssh

编辑 授权密钥 文件。

[[email protected] ~]$ vi ~/.ssh/authorized_keys

在源机器上,查看内容 id_rsa.pub 文件使用 命令。

[[email protected] ~]$ cat ~/.ssh/id_rsa.pub

输出: (样本)

复制内容并将其粘贴到 授权密钥 目标文件并保存。

然后,更新文件的权限。

[[email protected] ~]$ chmod 600 ~/.ssh/authorized_keys

测试无密码登录

现在使用 ssh 命令。

[[email protected] ~]$ ssh [email protected]

现在,您应该能够在没有密码的情况下访问远程机器。

结论

就这样。 我希望您能够在 CentOS 8 / RHEL 8 上设置 SSH 无密码登录。请在评论部分分享您的反馈。

[ad_2]

Related Posts