**
ssh 免密登入
ssh: 是⼀个远程登录的命令,可以远程登录到指定的虚拟机。其实,我们使⽤的远程连接⼯具,就是使⽤ssh实现的。
ssh在进⾏远程登录的时候,需要进⾏身份验证,输⼊远程登录⽤户的密码。
例如:ssh root@zbo02 需要输⼊zbo节点的root密码
ssh zbo02 当远程登录的⽤户名,与当前的⽤户名相同的时候,远程⽤户名可以省略
集群的节点之间需要频繁的进⾏通信,因此免密登录是必须要配置的。如果不配置免密登录,则在很多时候集群通信的时候,需要输⼊密码。这就需要⼈⼯维护,成本很⾼,⽽且很麻烦。
免密登录的原理
- zbo01使⽤ssh-keygen -t rsa⽣成公钥和私钥。
- ssh-copy-id zbo02,将公钥拷⻉到zbo02上,实际就是把公钥的内容追加authorized_keys⽂件中。
- 请求时: zbo01向zbo02发送连接请求时,附带主机、IP地址等信息。
- zbo02收到请求后,去授权⽂件(authorized_keys)中查找zbo01的公钥,找到之后,随机⽣成⼀个字符串,并使⽤公钥加密,发送给zbo01。
- zbo01收到密⽂后,⽤私钥解密,并把解密的结果返回给zbo02。
6.zbo02拿到解密结果之后,与之前的字符串进⾏⽐较,如果相同,则可以登录成功。
免密登录的实现
我们最终的⽬标是实现zbo01免密登录到zbo02,即在zbo01上远程登录zbo02不需要密码。
1 在zbo01上⽣成⼀对钥匙,分为公钥和私钥