CentOS 5.9作为一款经典的Linux发行版,虽然已停止官方支持,但在某些特定场景下仍被使用,SSH(Secure Shell)作为远程管理服务器的核心工具,其配置与优化对于系统安全性和管理效率至关重要,本文将详细介绍CentOS 5.9环境下SSH服务的安装、配置、安全加固及故障排查,帮助用户高效、安全地使用SSH。

安装SSH服务
在CentOS 5.9中,SSH服务通常由OpenSSH软件包提供,若系统未预装,可通过yum命令快速安装,确保系统已配置正确的软件源,然后执行以下命令:
sudo yum install openssh-server openssh-clients
安装完成后,启动SSH服务并设置为开机自启:
sudo /etc/init.d/sshd start sudo chkconfig sshd on
通过sshd -v命令可验证SSH版本,CentOS 5.9默认支持SSH协议2,该协议比协议1更安全,应优先使用。
配置SSH服务
SSH的主配置文件位于/etc/ssh/sshd_config,修改前建议备份原始文件,以下是关键配置项的说明:

- 端口设置:默认端口为22,为避免自动化攻击,可修改为其他高端口(如2222),需确保防火墙已放行。
- root登录:禁用root直接登录,降低安全风险,设置
PermitRootLogin no,并改用普通用户登录后切换至root。 - 密码认证:结合密钥认证与密码认证,优先使用密钥认证(
PubkeyAuthentication yes),密码作为备用。 - 连接超时:设置空闲超时时间(如
ClientAliveInterval 300),避免连接长时间占用资源。
修改配置后,需重启SSH服务使生效:
sudo /etc/init.d/sshd restart
安全加固措施
为提升SSH安全性,建议采取以下措施:
- 使用密钥认证:通过
ssh-keygen生成密钥对,将公钥(~/.ssh/id_rsa.pub)上传至服务器的~/.ssh/authorized_keys,并设置适当权限(600)。 - 限制访问IP:在
sshd_config中添加AllowUsers或AllowHosts指令,仅允许特定IP或用户连接。 - 禁用空密码:确保所有用户密码不为空,配置
PermitEmptyPasswords no。 - 日志监控:启用SSH日志记录(默认位于
/var/log/secure),定期检查异常登录尝试。
常见问题排查
若SSH连接失败,可按以下步骤排查:
- 检查服务状态:确认
sshd进程是否运行(ps aux | grep sshd)。 - 查看防火墙规则:确保SSH端口未被拦截(如
iptables -L)。 - 验证配置语法:使用
sshd -t检查配置文件语法错误。 - 检查日志:通过
tail -f /var/log/secure实时查看连接失败原因。
FAQs
Q1: 如何在CentOS 5.9中更改SSH默认端口?
A1: 编辑/etc/ssh/sshd_config文件,找到Port 22,修改为自定义端口(如Port 2222),保存后重启SSH服务,确保防火墙规则允许新端口访问(如iptables -A INPUT -p tcp --dport 2222 -j ACCEPT)。

Q2: SSH连接时提示“Permission denied (publickey,password)”如何解决?
A2: 该错误通常由权限问题或认证失败导致,检查服务器端~/.ssh/authorized_keys权限是否为600,用户目录权限是否为755,若使用密码认证,确认用户密码正确;若使用密钥认证,确保公钥已正确上传且私钥未损坏(可通过ssh -v user@host调试)。