Linux/(centos、unix等)的ssh双向免密登录原理和实现

原理:

双向,顾名思义,双方互通,此处的意思是多台 linux 两两免密登录。

双向比单向多了些操作,单向只需把某一个linux的公钥发送给其他linux即可,而双向要实现集群中的每一台机器都保存其他所有机器的公钥。

 

步骤:假设你有两台机器,ip分别为A和B,

配置分为五步,如下:

1.非免密登录对方:  //目的是自动生成.ssh文件夹

  先执行cd这个命令到根目录下,然后执行如下命令登录:

  ssh B  //在A机器执行此命令,输入yes和B机器的用户密码登录B

  ssh A  //在B机器执行此命令,输入yes和A机器的用户密码登录A

之后分别执行exit命令退出,一定要退出。

2.生成公钥(以下命令在A和B机器都要执行):

  cd .ssh/

如下命令生成公钥,默认会在~/.ssh/下生成id_rsaid_rsa.pub。先检查一下机器.ssh文件夹下是否已有公钥,如果没有再执行:

  ssh-keygen -t rsa(一直回车)    //目的是生成公钥 

-t 指定算法
-f 指定生成秘钥路径
-N 指定密码

3.拷贝公钥:

  scp id_rsa.pub root@B:~/.ssh/authorized_keys  //此命令在A机器执行,目的将公钥发送至B机器

  scp id_rsa.pub root@A:~/.ssh/authorized_keys  //此命令在B机器执行,目的将公钥发送至A机器

若对方.ssh下没有authorized_keys文件夹,以上命令执行后会自动生成,执行ls可查看。

4.授权:  //目的是授权authorized_keys文件免密登录权限

  chmod 600 authorized_keys 

  cd  //返回根目录

  chmod 700 .ssh

5.验证:

  ssh B  //在A机器执行此命令,看是否能免密登录B

  ssh A  //在B机器执行此命令,看是否能免密登录A

 

:如果authorized_keys文件、HOME/.sshHOME/.ssh目录或HOME目录让本用户之外的用户有写权限,那么sshd都会拒绝使用 ~/.ssh/authorized_keys 文件中的key来进行认证的。

 

看懂了左手给你个栗子,给我关注点赞;看不懂右手给你个锤子,砸开脑壳看看有没有带脑子。

posted @ 2019-11-14 21:28  举个栗子,举个锤子  阅读(378)  评论(0编辑  收藏  举报