Loading
0

一起RAC账户ssh无法设置无密码访问故障解决案例

装过RAC的人都知道,其中一个步骤就是建立账户对等,配置SSH无密码访问,这样在安装软件时,程序才能将相关文件复制到其他节点,这次这位网友找我解决的正是这个操作上出现的问题,他根据相关文档做了相关的操作,但是使用ssh访问其他节点时始终需要输入密码,无法实现无密码访问,配置SSH无密码访问正确的操作步骤如下(只为演示配置过程,并非实际的RAC环境):

A节点,一路回车即可,生成rsa算法的公钥和私钥,10g的文档中还需要生成dsa算法的公钥和私钥,其实只要rsa就可以了:

 B节点,同样执行A节点上的命令,生成rsa算法的公钥和私钥,一样还是一路回车即可(由于只是演示,这里的A节点和B节点的操作系统版本不同,A节点是Centos 5.5而B节点时Oracle Linux 6.3,所以输出的信息有所不同,但不影响演示):

 A节点,将A、B节点生成的公钥内容导入authorized_keys这个文件中,并将这个文件scp一份到B节点相应目录:

 注意:家目录下的.ssh目录在你使用过ssh,或者使用过ssh-keygen生成密钥后自动生成的,不需要你创建。

在A、B节点验证是否可以实现SSH无密码访问其他节点:

 第一次访问某一节点时会提示是否将该节点加入known hosts中,输入yes即可,A节点已经实现了SSH无密码访问。

同样的在B节点上进行验证:

 验证结果说明B节点也已经实现了SSH无密码访问。

以上是正常的情况,按照正确的步骤是可以实现SSH无密码访问的,但是这位朋友在按照正确的步骤做了之后在使用ssh访问其他节点时依然提示需要输入密码,他研究了2天始终无法解决,我一开始怀疑这位朋友是不是哪里没有操作正确,但在询问后他表示都是按正确的步骤操作的,于是我怀疑他的.ssh目录的权限是否没有设置正确,因为如果.ssh目录以及他下面的文件的权限如果不正确,那么ssh会出现无法正常使用的情况,正确的.ssh以及他下面的文件的权限如下:

 我通过远程登陆到这位朋友的机器上查看,发现他的authorized_keys文件的权限跟这里的不要一样,于是将其权限改成了这个,但是结果却依然需要输入密码,于是我直接将他的.ssh目录给删除了,然后重新做了一次ssh无密码配置,但是结果依然是需要输入密码才能访问,这个纠结啊,明明步骤都是正确的,相关目录的权限也是一致的,为什么就不行呢?我的想法是肯定哪里还是有权限不对,就在这时,他跟我说他grid账户配置SSH是成功的,root也是成功的,就是oracle这个账户不成功,于是我想肯定是这个账户有什么问题,我查看了home目录下的权限,果然发现了问题,这位朋友的oracle的家目录的权限居然是777,正确的家目录的权限应该是700,他的grid的家目录的权限也是700,所以grid账户是可以成功配置的,于是我将他家目录的权限修改成了700,问题解决了,ssh可以不用密码访问其他节点了。

故障演示与解决:

将A、B节点的oracle家目录的权限改成777:

 

 使用ssh进行验证,提示需要使用密码才能访问

 将oracle家目录的权限改回700

 

 重新使用ssh进行验证

 无密码验证通过。

问题总结:对于ssh除了正确的步骤外,相关目录和文件的权限设置是否正确也是至关重要的,权限如果不对,ssh就可能出现使用问题。

 

请尊重我们的辛苦付出,未经允许,请不要转载 Ask600 的文章!