2018-01-28 ssh免密登录

2018-01-28  本文已影响0人  苏林欣

节点均为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

scp命令详解请点击这

示例如下:

将公钥拷贝到其他节点的操作

中间自己输入密码就好。

其中,如果登录时遇到问题如图:

登录时遇到的问题

解决办法戳这里

将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上,而不是替换

示例如图:

authorized_keys文件拷贝

五、验证一下是否成功即可


如果是在之前从未设置过公钥私钥的节点上的话,推荐这个链接教程

上一篇下一篇

猜你喜欢

热点阅读