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

安全壳SSH协议)是用于客户端和服务器之间安全连接的加密网络协议,并支持各种身份验证机制。也用于通过网络将文件从一台计算机传输到另一台计算机 机密副本SCP协议书。本文将向您介绍 如何在CentOS 7上设置无密码登录RHEL 7RHEL 8 使用ssh密钥连接到远程Linux服务器,而无需输入密码。使用无密码登录 SSH密钥 增加两个Linux服务器之间的信任,并促进文件同步或传输。在此示例中,我们设置了不带SSH密码的自动登录,从服务器192.168.1.5作为用户rasho到用户192.168.1.8作为服务器miroslav。

如何设置SSH无密码登录

设置 SSH登录无密码 在Linux中您需要做的是 公用认证密钥 将其添加到远程主机 ~/.ssh/authorized_keys 文件以下命令使用电子邮件地址作为注释,生成一个新的4096位SSH密钥对。

# ssh-keygen -t rsa -b 4096 -C "[email protected]"

按下 Enter 要接受默认文件位置和文件名:

Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

然后 ssh-keygen工具 系统将提示您输入安全密码。使用密码取决于您,但是如果您选择使用密码,则会获得额外的安全性。主要由开发人员和系统管理员使用 SSH协议 不需要密码,因为它有助于全自动过程。如果您不想使用密码, Enter

Enter passphrase (empty for no passphrase):

整体交互如下所示:

# ssh-keygen -t rsa -b 4096 -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:IzizL5Vf5RpUNftqwLJrNKIisSRMpiid58/ECXVhrTY [email protected]
The key's randomart image is:
+---[RSA 4096]----+
|        o.   .o  |
|       . .. .  o |
|      . .. .  .  |
| o   o .E ...  . |
|*. .= .oSo.oo   .|
|=.= .*oo..=o.. . |
|.o =..+o +.+  o  |
|  o ++. . o. .   |
|   . ++  ..      |
+----[SHA256]-----+

将公共SSH密钥复制到远程主机

复制密钥是一项简单的任务,可以使用ssh-copy-id命令完成,如下所示。

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

当提示您输入远程用户的密码时,只需输入该密码即可。这将创建 .ssh 如果没有目录,则具有相应的authorized_keys文件权限。

[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/rasho/.ssh/id_rsa.pub"
/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无密码登录

现在您已将密钥复制到远程服务器,可以测试连接了。您无需输入密码:

[email protected]:~# ssh [email protected]
Last login: Sat Feb  9 11:34:53 2019 from 192.168.1.5
[[email protected] ~]#

如果一切顺利,您可以立即登录。

禁用SSH密码认证

要为服务器添加额外的安全性,请禁用SSH密码身份验证。 登录到远程服务器 SSH密钥:

ssh [email protected]_ip_address

开门 SSH配置 档案 /etc/ssh/sshd_config

sudo vi /etc/ssh/sshd_config

搜索以下指令并将其更改为:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

完成后,保存文件并重新启动SSH服务。

# sudo systemctl restart sshd

结论

在本教程中,您学习了如何 SSH协议 给你 CentOS的7 RHEL 7RHEL 8 使用系统 没有密码的SSH密钥。 我希望这个过程很容易。如有任何疑问,请在下面的评论部分中发布。

Sidebar