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_rsa
和id_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/.ssh目录或HOME/.ssh目录或HOME目录让本用户之外的用户有写权限,那么sshd都会拒绝使用 ~/.ssh/authorized_keys 文件中的key来进行认证的。
看懂了左手给你个栗子,给我关注点赞;看不懂右手给你个锤子,砸开脑壳看看有没有带脑子。