Linux系统配置SSH免密登录(多主机互通)

本文测试环境:

Linux系统镜像:CentOS-7-x86_64-DVD-1804.iso
虚拟机版本:VMware-workstation-full-12.1.0-3272444

操作成功后的效果:
每台主机可以本机SSH免密登录,也可以与其他主机之间实现SSH免密登录,也就是每台主机都可以一对多SSH免密登录.

现用虚拟机搭建三台主机,IP分别是:
192.168.33.201 master1
192.168.33.202 master2
192.168.33.203 master3

SSH免密登录的原理在这里就不做介绍了,有兴趣的可以自己去网上找资料了解一下,在这里就直接上方法了.


PS:
authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥
id_rsa : 生成的私钥文件
id_rsa.pub : 生成的公钥文件
know_hosts : 已知的主机公钥清单


方法一:

先选择其中一台主机,在该主机上生成公钥和私钥,再将公钥和私钥上传到其他主机上,具体操作如下:
在这里我就选择master1进行操作以下操作了:
1.登录Linux系统,根据自己实际情况选择登录用户,执行下面代码生成公钥私钥对:

ssh-keygen –t rsa

会出现如下提示,一路回车就行

[root@master1 ~]# 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:
df:71:f6:3e:bb:bb:6c:38:91:f4:bc:70:a1:dd:86:a9 root@master1
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|             . . |
|        S   o Ooo|
|         . . Oo*o|
|          . ..=.o|
|            Eo.= |
|              o*B|
+-----------------+

注意:在程序提示输入passphrase时直接输入回车,表示无证书密码。

2.生成秘钥的默认目录为:~/.ssh,该目录下会生成下面两个文件:

id_rsa

id_rsa.pub

2.实现本地免密登录,将id_rsa.pub中的内容拷贝到authorized_keys

ssh-copy-id localhost

~/.ssh目录下会生成一个新的文件:authorized_keys

3.完成上述步骤后就可以本地SSH免密登录了,运行下面代码出现一行登录时间就代表本地SSH免密登录成功

ssh localhost

下面是本地SSH免密登录成功的标志:

[root@master1 ~]$ ssh localhost
Last login: Mon Aug 27 08:41:20 2018 from 192.168.33.2

4.如果本机能成功SSH免密登录,
先退出SSH登录:

exit

再执行以下代码将本机的~/.ssh文件夹复制到其他主机上:

scp -r ~/.ssh/* 192.168.33.202:~/.ssh
scp -r ~/.ssh/* 192.168.33.203:~/.ssh

提示输入密码时,输入远程主机密码回车即可

5.测试SSH免密登录,这里就不发测试了,大家自行测试


方法二:

将每台机器生成的id_rsa.pub追加添加到同一个authorized_keys内,然后再将该authorized_keys发送到其他远程主机上.

具体步骤如下:
1.在master1,master2,master3上分别执行:

ssh-keygen

与”方法一”内所述一样,一路回车即可,生成秘钥的默认目录为~/.ssh
2.接着制作包含master1,master2,master3中所有id_rsa.pub的authorized_keys文件:
此处在master 1上生成authorized_keys文件,
在master1上执行:

ssh-copy-id -i 192.168.33.201

在master2上执行:

ssh-copy-id -i 192.168.33.201

在master3上执行:

ssh-copy-id -i 192.168.33.201

注意:此处代码中的”-i”千万不要忘记了!!!

3.通过scp将master1上生成的authorized_keys文件发送给其他主机:
在master1上执行

scp -r ~/.ssh/authorized_keys 192.168.33.202:~/.ssh
scp -r ~/.ssh/authorized_keys 192.168.33.203:~/.ssh

提示输入密码时,输入远程主机密码回车即可

5.测试SSH免密登录,可先测试本机免密登录,再测试远程主机远程登录
本机登录可用:

ssh localhost

远程登录将localhost换成远程主机IP即可
比如在master1上登录master2,就在master1上执行:

ssh 192.168.33.202

相关故障处理:
部分人在配置完成后可能出现无法登录的情况,错误代码我不太记得了,欢迎各位读者在下面补充.
造成故障的原因是之前配置过程中配置失败,然后重新对SSH免密登录进行配置,配置完成后无法正常登录,解决方法如下:

删除各主机下~/.ssh目录中的known_hosts文件:

rm -rf ~/.ssh/known_hosts

猜你喜欢

转载自blog.csdn.net/u010993514/article/details/82083027