一、原理

我们使用`ssh-keygen`在A主机上生成`私钥`和`公钥`,将公钥的内容粘贴到B主机的`authorized_keys `文件内,就可以在`A主机上`使用`ssh`命令,不使用密码登陆`B主机`。

二、操作步骤

1
2
3
## 假设有两台主机,实现互相免密登陆
node1.ambari.com
node2.ambari.com

各个主机均执行以下操作:

1
2
3
4
5
6
7
8
9
## 生成密钥对
ssh-keygen -t rsa ## 一路回车即可
## 进入.ssh目录
cd ~/.ssh
## 将公钥导入至authorized_keys
cat id_rsa.pub >> authorized_keys
## 修改文件权限
chmod 700 ~/.ssh
chmod 600 authorized_keys

在node1.ambari.com上执行:

1
2
3
## 配置主从互相免密登陆
[root@node1 ~]# cat ~/.ssh/id_rsa.pub | ssh root@node2.ambari.com 'cat - >> ~/.ssh/authorized_keys'
ssh node2.ambari.com

在node2.ambari.com上执行:

1
2
3
4
## 配置主从互相免密登陆
[root@node2 ~]# cat ~/.ssh/id_rsa.pub | ssh root@node1.ambari.com 'cat - >> ~/.ssh/authorized_keys'
## 验证是否免密
ssh node1.ambari.com

注意文件权限:.ssh文件夹为700,authorized_keys文件的权限必须是600,这样做保险。

备注:如果只想主从节点免密的话,就将主节点的authorized_keys文件拷贝到从节点的/root/.ssh/目录下即可。

至此,免密登陆就实现了,如果还有其他问题的话,可以私信我哟~