AIX 5.3安装Oracle 11g R2 SSH 互信问题
《AIX 5.3安装Oracle 11g R2 SSH互信问题》
在AIX 5.3系统上安装Oracle 11g R2数据库时,SSH互信(Secure Shell Trust)配置是关键步骤之一。互信机制允许不同节点间无需密码即可执行远程命令,这对于Oracle RAC(Real Application Clusters)或分布式安装至关重要。然而,由于AIX系统与Linux/Unix的差异,以及Oracle 11g R2对环境变量的严格依赖,SSH互信问题常导致安装失败。本文将详细分析常见问题、解决方案及最佳实践。
一、SSH互信在Oracle安装中的作用
Oracle 11g R2的安装过程中,尤其是RAC环境,需通过SSH在多个节点间同步文件、执行脚本。若未正确配置互信,安装程序会因无法远程连接而中断。例如,在运行`runInstaller`时,若检测到SSH连接需要密码,会直接报错退出。
互信的核心是通过公钥认证(Public Key Authentication)替代密码认证。用户需在本地生成密钥对,并将公钥添加到远程节点的`~/.ssh/authorized_keys`文件中。AIX系统默认使用`/etc/ssh`目录配置SSH,与Linux的`/etc/ssh`类似,但权限和文件格式需严格遵循AIX规范。
二、AIX 5.3下SSH互信配置步骤
1. 检查SSH服务状态
AIX 5.3默认安装SSH,但需确认服务已启动:
# lssrc -s sshd
Subsystem Group PID Status
sshd sshd 12345 active
若未启动,执行:
# startsrc -s sshd
2. 生成密钥对
在安装Oracle的用户(如`oracle`)下生成RSA密钥:
# cd ~
# mkdir -p .ssh
# chmod 700 .ssh
# ssh-keygen -t rsa -b 2048
按提示操作,默认路径为`~/.ssh/id_rsa`(私钥)和`~/.ssh/id_rsa.pub`(公钥)。
3. 配置公钥认证
将公钥内容追加到远程节点的`authorized_keys`文件中。假设从节点A(192.168.1.10)连接节点B(192.168.1.11):
# scp ~/.ssh/id_rsa.pub oracle@192.168.1.11:/tmp/
# ssh oracle@192.168.1.11 "mkdir -p ~/.ssh; chmod 700 ~/.ssh; cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys; chmod 600 ~/.ssh/authorized_keys"
验证互信是否生效:
# ssh oracle@192.168.1.11 date
若无需密码且返回日期,则配置成功。
三、常见问题及解决方案
问题1:SSH连接超时或拒绝
现象:执行`ssh oracle@node2`时提示`Connection refused`或超时。
原因:
- SSH服务未运行。
- 防火墙阻止22端口。
- 主机名解析失败。
解决:
- 确认`sshd`服务状态,如未启动则执行`startsrc -s sshd`。
- 检查AIX防火墙(`ipfilter`或`no`)规则,临时关闭测试:
# stopsrc -s ipfilter
192.168.1.10 node1
192.168.1.11 node2
问题2:公钥认证失败
现象:SSH提示`Permission denied (publickey)`。
原因:
- `authorized_keys`文件权限错误(需600)。
- `.ssh`目录权限错误(需700)。
- 公钥格式不正确(如含多余空格或换行)。
解决:
- 严格设置权限:
# chmod 700 ~/.ssh
# chmod 600 ~/.ssh/authorized_keys
问题3:Oracle安装程序仍提示SSH密码
现象:运行`runInstaller`时,弹出密码输入框,即使互信已配置。
原因:
- Oracle用户环境变量(如`SHELL`、`PATH`)未正确设置。
- SSH配置未覆盖所有节点(RAC环境需双向互信)。
- AIX的`/etc/ssh/sshd_config`中`PermitRootLogin`或`PubkeyAuthentication`被禁用。
解决:
- 检查Oracle用户的`.bash_profile`或`.profile`,确保`SHELL=/usr/bin/ksh`(AIX默认Korn Shell)。
- 双向配置互信:即节点A到节点B、节点B到节点A均需完成公钥认证。
- 编辑`/etc/ssh/sshd_config`,确认以下参数:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# stopsrc -s sshd; startsrc -s sshd
四、AIX特有注意事项
1. 文件权限严格性
AIX对文件权限的检查比Linux更严格。`.ssh`目录必须为700,`authorized_keys`必须为600,否则SSH会拒绝连接。可通过以下命令检查:
# ls -ld ~/.ssh
# ls -l ~/.ssh/authorized_keys
2. SELinux或增强安全模块
AIX 5.3默认不启用SELinux,但若安装了第三方安全模块(如PowerTech),需确认其未阻止SSH连接。可临时禁用测试:
# /usr/sbin/setsec -f /etc/security/config -a "enforce=0"
3. 密钥算法兼容性
Oracle 11g R2推荐使用RSA 2048位密钥。若生成DSA密钥(`ssh-keygen -t dsa`),可能导致兼容性问题。始终使用:
# ssh-keygen -t rsa -b 2048
五、验证与调试工具
1. SSH日志分析
AIX的SSH日志默认位于`/var/adm/ras/sshd.log`。通过以下命令查看详细错误:
# tail -f /var/adm/ras/sshd.log
常见错误包括:
- `Authentication refused: bad ownership or modes`:权限错误。
- `No supported authentication methods available`:公钥未正确配置。
2. 使用`ssh -v`调试
添加`-v`参数查看SSH连接详细过程:
# ssh -v oracle@node2
输出会显示密钥尝试、认证方法等信息,帮助定位问题。
六、总结与最佳实践
在AIX 5.3上配置Oracle 11g R2的SSH互信,需注意以下要点:
- 严格遵循文件权限(`.ssh`为700,`authorized_keys`为600)。
- 使用RSA 2048位密钥,避免DSA或其他算法。
- 双向配置互信(RAC环境需所有节点互信)。
- 检查`/etc/ssh/sshd_config`中的`PubkeyAuthentication`参数。
- 通过日志和`ssh -v`调试连接问题。
完成互信配置后,建议执行一次完整的SSH连接测试,包括从所有节点到其他节点的无密码登录。此外,在运行Oracle安装程序前,可手动执行`cluvfy`工具(Oracle Cluster Verification Utility)检查SSH配置:
# /u01/app/oracle/product/11.2.0/db_1/cv/admin/cvucheck.sh
关键词:AIX 5.3、Oracle 11g R2、SSH互信、公钥认证、RAC安装、权限配置、SSH调试
简介:本文详细阐述了在AIX 5.3系统上安装Oracle 11g R2时SSH互信配置的步骤、常见问题及解决方案。针对AIX特有环境,分析了权限、服务状态、密钥算法等关键因素,提供了调试工具和最佳实践,帮助数据库管理员高效完成RAC或分布式安装前的互信设置。