CentOS中怎么实现双向免密码登录

2023-04-19 00:17:00 密码 登录 双向

在CentOS中实现双向免密码登录,可以通过SSH公钥认证的方式来实现。 SSH公钥认证是一种安全的登录方式,它使用一对公钥和私钥来验证用户的身份。公钥和私钥是一对,用户将公钥上传到服务器上,服务器会使用公钥来验证用户的身份,而私钥用于登录服务器,以便用户不需要输入密码就可以登录服务器。

要实现CentOS上的双向免密码登录,首先需要在客户端和服务器上分别生成一对公钥和私钥。在客户端上,可以使用ssh-keygen命令来生成一对公钥和私钥:

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
The key fingerprint is:
a1:b2:c3:d4:e5:f6:g7:h8:i9:j0 username@hostname

在服务器上,也可以使用ssh-keygen命令来生成一对公钥和私钥:

$ ssh-keygen -t rsa
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:
a1:b2:c3:d4:e5:f6:g7:h8:i9:j0 root@hostname

接下来,需要将客户端生成的公钥复制到服务器上,可以使用ssh-copy-id命令来实现:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub username@hostname

这样,客户端生成的公钥就会被复制到服务器上,而服务器上的公钥也会被复制到客户端上。接下来,可以在客户端和服务器上都配置一下SSH,使用免密码登录:

# 在客户端上
$ vi ~/.ssh/config
Host hostname
  HostName hostname
  User username
  IdentityFile ~/.ssh/id_rsa

# 在服务器上
$ vi ~/.ssh/config
Host hostname
  HostName hostname
  User username
  IdentityFile ~/.ssh/id_rsa

最后,可以尝试从客户端登录服务器,从服务器登录客户端,如果都不需要输入密码,就表示双向免密码登录已经成功实现了。

相关文章