节点均为centOS7系统,进行ssh免密登录操作
假设想从node1免密登录到node2,node3
一、生成公钥私钥
1.首先要生成node1、node2、node3的公钥私钥,在每个服务器的终端中输入如下命令
$ ssh-keygen -t rsa
1.1若之前没用公钥会出现如下结果:
第二行打印 Enter file in ... (/root/.ssh/id_rsa):
以及第三第四行,冒号后面,直接按enter键即可。
1.2若之前有公钥私钥
以上是没有公钥私钥需要新生成的时候的操作,接下来说一下如果有了公钥私钥,其他节点设置过了,现在不想全部重写覆盖,想在原来的基础上追加的话,需要再怎么办:
如果已经有了公钥私钥,会提示already exist.如图所示:
如果你想重新设置,则下面问overwrite(y/n) 时,输入y;如果只是想追加,则选择n即可,这样就不会更改你之前生成的。
同样上面第二行直接按enter键就好
二、将公钥私钥拷贝到想要免密登录到其他节点的节点上
1.进入 .ssh 目录查看已经生成的公私钥
$ cd .ssh
其中id_rsa.pub就是生成的公钥,id_rsa为私钥
2.接下来将当前节点(node2,node3)的公钥拷贝到想要免密登录的节点(node1)上并重命名
scp id_rsa.pub root@211.0.0.1:.ssh/id_rsa_5.pub
这个命令是把当前节点的公钥拷贝到211.0.0.1节点的.ssh目录下,并改名为id_rsa_5.pub
示例如下:
中间自己输入密码就好。
其中,如果登录时遇到问题如图:
将node2、node3的公钥拷贝到node1上
三、将自己的公钥和复制过来的公钥添加到authorized_keys文件中
使用cat命令
$ cat id_rsa.pub >> authorized_keys
$ cat id_rsa_2.pub >> authorized_keys
$ cat id_rsa_3.pub >> authorized_keys
四、将node1已经添加好公钥的authorized_keys文件拷贝到node2,node3的.ssh目录下
这个过程可以重命名一下,或者自己按照自己喜欢的方式把公钥拷贝到对应的节点上,不一定非要懂放在authorized_keys文件中,只要最后公钥添加到对应节点的authorized_keys中就好,而且直接从其他节点拷贝来的authorized_keys替换掉的话也有隐患,说不得把之前设置的都覆盖了,如果之前从来没设置过,那就好说了,我这里就是想在原来的基础上追加,所以尽可能的不要把原来的authorized_keys文件替换掉,故拷贝的时候,也重命名了,还是用cat的方式把公钥添加到已有的authorized_keys上,而不是替换
示例如图:
五、验证一下是否成功即可
如果是在之前从未设置过公钥私钥的节点上的话,推荐这个链接教程。