Oracle RAC SSH等价性配置
㈠ 需求
为方便RAC环境个节点通信、往往需要配置SSH等价性
简言之:
用户或程序从一台机器连接到另一台机器时不需要输入密码
这种应用的背景是:
Clusterware和Database的安装过程都是先在一个节点安装
然后安装程序自动把本地安装好的内容复制到远程相同目录
这是一个后台拷贝的过程,安装人员没有机会输入密码进行身份验证,因此必须配置用户等价
其实、在Hadoop集群配置过程、也需要配置SSH等价性
Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后
NameNode是通过SSH来启动和停止各个DataNode上的各种守护进程的
所以、这两者关于SSH等价性的配置是一样的
㈡ 安装和启动SSH协议
先确认是否安装:
# rpm -qa | grep openssh
# rpm -qa | grep rsync
如果没有、则:
# yum install ssh
# yum install rsync
启动SSH:
# service sshd start
㈢ SSH等价性原理
假设网络上有2台机器:A&B、且A要实现无密码公钥认证、则:
① 先在A上生成一个密钥对,包括一把公钥和一把私钥
② 而后将公钥复制到B上
③ 当A通过SSH连接B时,B就会生成一个随机数并用A的公钥对随机数进行加密,并发送给A
④ A收到加密数之后再用私钥解密,并将解密数回传给B
⑤ B确认解密数无误之后就允许A进行连接了
㈣ 注意事项
必须保证每个节点上Oracle用户的UID和DBA组的GID相同
例如:
[plain]
节点一:
[root@odd ~]# id oracle
uid=500(oracle) gid=500(oinstall) groups=500(oinstall)
节点二:
[root@even ~]# id oracle
uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)
㈤ 配置步骤
① 网络设置
将各个IP&Hostname全部写进hosts文件、保持每个节点的/etc/hosts文件相同
[plain]
[root@even ~]# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.115 even.example.com even
192.168.1.116 odd.example.com odd
[mysql@odd ~]$ cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.115 even.example.com even
192.168.1.116 odd.example.com odd
② 在ODD 和 EVEN上分别执行下列命令:
# cd $HOME
# mkdir .ssh
# chmod 700 .ssh
# cd .ssh
# ssh-keygen -t rsa
# ssh-keygen -t dsa
# cat *.pub > authorized_keys
③ 迁移 authorized_keys
在ODD:
# scp authorized_keys even.example.com:/root/.ssh/keys_odd
在EVEN:
# cat keys_odd >> authorized_keys
# scp authorized_keys odd.example.com:/root/.ssh/
㈥ 测试
在ODD:
[root@odd ~]# ssh even.example.com
Last login: Mon May 6 12:58:12 2013 from odd.example.com
[root@even ~]#
在EVEN:
[root@even ~]# ssh odd.example.com
Last login: Mon May 6 11:57:49 2013
[root@odd ~]#