[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 无密码登录。 选择任何一种方式。
使用 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_rsa 和 id_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_rsa 和 id_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]