在CentOS系统中添加SSH服务是实现远程管理服务器的常见操作,以下是详细的步骤和注意事项,帮助用户顺利完成配置。

安装SSH服务
需要确认系统是否已安装SSH服务,通过执行命令rpm -qa | grep openssh可以查看当前安装的SSH相关包,如果未安装或需要更新,使用yum install openssh-server openssh-clients命令进行安装,该命令会自动处理依赖关系并完成安装,安装完成后,启动SSH服务并设置开机自启,命令为systemctl start sshd和systemctl enable sshd,可以通过systemctl status sshd检查服务状态,确保服务正常运行。
配置SSH服务
SSH服务的配置文件位于/etc/ssh/sshd_config,使用文本编辑器(如vi或nano)打开该文件,根据需求修改以下关键参数:
Port:默认为22,可根据安全需求修改为其他端口。PermitRootLogin:建议设置为no,禁止root用户直接登录,提高安全性。PasswordAuthentication:若需使用密钥认证,可设置为no,禁用密码登录。
修改后保存文件,并通过sshd -t测试配置语法是否正确,确认无误后,执行systemctl restart sshd重启服务使配置生效。
配置防火墙规则
CentOS系统默认使用firewalld作为防火墙管理工具,需允许SSH服务的端口通信,执行以下命令:

- 添加规则:
firewall-cmd --permanent --add-service=ssh - 重新加载防火墙:
firewall-cmd --reload
若修改了SSH默认端口,需使用firewall-cmd --permanent --add-port=端口号/tcp添加规则,通过firewall-cmd --list-all可验证规则是否生效。
密钥认证设置(可选)
为增强安全性,建议使用SSH密钥对认证,在客户端生成密钥对:ssh-keygen -t rsa,然后将公钥(~/.ssh/id_rsa.pub)上传至服务器,在服务器端,将公钥内容追加到~/.ssh/authorized_keys文件中,并设置正确权限:chmod 700 ~/.ssh和chmod 600 ~/.ssh/authorized_keys,在sshd_config中启用PubkeyAuthentication yes。
常见问题排查
若无法连接SSH服务,可按以下步骤排查:
- 检查服务状态:
systemctl status sshd。 - 查看日志:
journalctl -u sshd,分析错误信息。 - 验证网络连通性:使用
telnet IP 端口测试端口是否开放。 - 确认防火墙和SELinux设置是否阻止连接。
相关问答FAQs
Q1: 如何修改SSH默认端口?
A1: 编辑/etc/ssh/sshd_config文件,找到Port 22并修改为自定义端口(如2222),保存后重启SSH服务,同时需在防火墙中开放新端口,否则将无法连接。

Q2: 忘记SSH密码如何登录?
A2: 若使用密钥认证,可通过密钥登录后重置密码,若禁用了密码认证,需进入单用户模式(通过GRUB菜单编辑)或使用救援模式重置密码。