2018-01-28 ssh免密登录

节点均为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文件拷贝

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


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 三台机器分别为node1,node2,node3, 需求:三台机器两两之间都需要让root用户免密码登录 1、以n...
    ThechiefofYanwu阅读 4,513评论 0 0
  • 为了让两个linux机器之间使用ssh不需要用户名和密码。所以采用了数字签名RSA或者DSA来完成这个操作。 ...
    Sunshine_Boys阅读 10,684评论 0 4
  • 在linux中进行各个系统之间进行ssh通信时,必须知道对方的账户密码,才能进行相应的操作。 思路:通过RSA加密...
    landy8530阅读 40,851评论 5 10
  • 1、在A机下生成公钥/私钥对。 [chenlb@A~]$ssh-keygen-trsa-P'' -P表示密码,-P...
    zksfyz阅读 9,771评论 0 1
  • 1、先决条件 2、上传tar,并且解压。并且配置hadoop的环境变量 3、编辑hadoop配置文件:hadoop...
    程序媛啊阅读 3,555评论 0 1