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

  1. 云栖社区>
  2. 博客列表>
  3. 正文

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

优惠券发放 2018-10-25 07:08:25 浏览321 评论0

摘要: Linux系统配置SSH免密登录(多主机互通) 本文测试环境: Linux系统镜像:CentOS-7-x86_64-DVD-1804.iso 虚拟机版本:VMware-workstation-full-12.

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
1
会出现如下提示,一路回车就行

[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|
+-----------------+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
注意:在程序提示输入passphrase时直接输入回车,表示无证书密码。

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

id_rsa

id_rsa.pub

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

ssh-copy-id localhost
1
~/.ssh目录下会生成一个新的文件:authorized_keys

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

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

[root@master1 ~]$ ssh localhost
Last login: Mon Aug 27 08:41:20 2018 from 192.168.33.2
1
2
4.如果本机能成功SSH免密登录,
先退出SSH登录:

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

scp -r ~/.ssh 192.168.33.202:~/
1
scp -r ~/.ssh 192.168.33.203:~/
1
提示输入密码时,输入远程主机密码回车即可

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

方法二:

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

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

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

ssh-copy-id -i 192.168.33.201
1
在master2上执行:

ssh-copy-id -i 192.168.33.201
1
在master3上执行:

ssh-copy-id -i 192.168.33.201
1
注意:此处代码中的"-i"千万不要忘记了!!!

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

scp -r ~/.ssh/authorized_keys 192.168.33.202:~/.ssh
1
scp -r ~/.ssh/authorized_keys 192.168.33.203:~/.ssh
1
提示输入密码时,输入远程主机密码回车即可

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

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

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

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

rm -rf ~/.ssh/known_hosts
--------------------- 
作者:PengShuaixin 
来源:CSDN 
原文:https://blog.csdn.net/u010993514/article/details/82083027 

【云栖快讯】阿里云栖开发者沙龙(Java技术专场)火热来袭!快来报名参与吧!  详情请点击

网友评论

作者关闭了评论
优惠券发放
文章249篇 | 关注32
关注
主机市场占用率第一,20年专业品质保证 查看详情
针对互联网服务器(包括非阿里云主机)在遭受大流量的DDoS攻击后导致服务不可用的情况下,推出... 查看详情
由轻量级Agent和云端组成,集云盾威胁情报于一体,通过Agent和云端大数据的联动,为您提... 查看详情
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效... 查看详情
阿里云总监课正式启航

阿里云总监课正式启航