SSH互信原理:预先在目标机用户的authorized_keys文件中保存本机的公钥文件,当本机需要访问目标机时,目标机通过读取本机的公钥信息,从而实现对本机的无密码访问。
SSH互信设置步骤:
1. 每个节点上分别生成自己的公钥和私钥
2. 将各节点的公钥文件汇总到一个总的认证文件authorized_keys中
3. 将这个包含了所有节点公钥的认证文件authorized_keys分发到各个节点中去
4. 验证节点间互信
以下是三节点SSH互信配置的实例,三节点主机名分别是rac1、rac2、rac3。
1. 每个节点上分别生成自己的公钥和私钥,并把公钥放到本机的authorized_keys中
rac1:
su - oracle
ssh-keygen -t rsa
ssh-keygen -t dsa
cd .ssh
cat *.pub > authorized_keys
rac2:
su - oracle
ssh-keygen -t rsa
ssh-keygen -t dsa
cd .ssh
cat *.pub > authorized_keys
rac3:
su - oracle
ssh-keygen -t rsa
ssh-keygen -t dsa
cd .ssh
cat *.pub > authorized_keys
2. 将各节点的公钥文件汇总到一个总的认证文件authorized_keys中
rac1:
scp /home/oracle/.ssh/authorized_keys rac3:/home/oracle/authorized_keys_rac1
rac2:
scp /home/oracle/.ssh/authorized_keys rac3:/home/oracle/authorized_keys_rac2
rac3:
cat /home/oracle/authorized_keys_rac1 >> /home/oracle/.ssh/authorized_keys
cat /home/oracle/authorized_keys_rac2 >> /home/oracle/.ssh/authorized_keys
3. 将这个包含了所有节点公钥的认证文件authorized_keys分发到各个节点中去
rac3:
scp /home/oracle/.ssh/authorized_keys rac1:/home/oracle/.ssh/
scp /home/oracle/.ssh/authorized_keys rac2:/home/oracle/.ssh/
4. 验证节点间互信
在每个节点上测试:
ssh rac1
ssh rac2
ssh rac3
-------以下是RAC的特有测试-----------
ssh rac1-priv
ssh rac2-priv
ssh rac3-priv
5.删除临时文件
rac3:
cd /home/oracle/
rm -rf authorized_keys_rac1 authorized_keys_rac2
6.如果出于安全考虑,又想恢复对目标机的密码访问,删除目标机authorized_keys中关于本机的记录即可,也可直接删除authorized_keys文件,此时所有主机访问目标机都需要使用密码。