CentOS作为一款广泛使用的Linux发行版,其SSH(Secure Shell)服务的安装与配置是系统管理中的基础操作,SSH协议为远程登录、文件传输等操作提供了加密通道,确保了数据传输的安全性,本文将详细介绍在CentOS系统中安装、配置及使用SSH服务的完整流程,帮助用户快速掌握相关技能。

检查系统是否已安装SSH服务
在开始安装之前,首先需要确认系统中是否已安装SSH服务,CentOS默认可能未预装SSH,尤其是 minimal 版本的系统,打开终端,输入以下命令检查:
rpm -qa | grep openssh
如果返回类似openssh-server-8.0p1-10.el8.x86_64的结果,说明SSH服务已安装,若未返回任何信息,则需要手动安装,还可以通过以下命令检查SSH服务状态:
systemctl status sshd
若服务未运行或未安装,需按后续步骤进行配置。
安装SSH服务
对于未安装SSH系统的CentOS,可通过yum或dnf包管理器进行安装,以CentOS 7及更高版本为例,使用以下命令:
sudo yum install openssh-server openssh-clients
若为CentOS 8或更高版本,建议使用dnf:
sudo dnf install openssh-server openssh-clients
安装过程中,系统会提示确认依赖关系,输入y继续,安装完成后,可通过rpm -qa | grep openssh再次验证是否成功。
启动并设置SSH服务开机自启
安装完成后,需启动SSH服务并设置为开机自启,以确保系统重启后服务仍可用,执行以下命令:

sudo systemctl start sshd sudo systemctl enable sshd
通过systemctl status sshd检查服务状态,若显示active (running),则表示服务已成功启动,若需停止或禁用服务,可使用systemctl stop sshd和systemctl disable sshd。
配置SSH服务
SSH服务的配置文件位于/etc/ssh/sshd_config,通过修改此文件可实现自定义设置,建议在修改前备份原文件:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
使用vi或nano编辑器打开配置文件:
sudo vi /etc/ssh/sshd_config
常见配置项包括:
- 端口号:默认为22,可修改为其他端口(如
Port 2222)以提高安全性。 - root登录:禁用root远程登录,修改
PermitRootLogin no。 - 密码认证:可禁用密码认证,改用密钥认证(
PasswordAuthentication no)。 - 允许用户:在
AllowUsers后添加允许登录的用户名(如AllowUsers user1 user2)。 修改完成后,保存文件并重启SSH服务:sudo systemctl restart sshd
配置防火墙规则
CentOS默认启用防火墙(firewalld),需开放SSH端口(默认22)以允许远程连接,执行以下命令:
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
若修改了SSH端口(如2222),需手动添加规则:
sudo firewall-cmd --permanent --add-port=2222/tcp sudo firewall-cmd --reload
可通过firewall-cmd --list-all验证规则是否生效。

使用SSH客户端连接
配置完成后,可通过其他设备使用SSH客户端连接CentOS服务器,Linux或macOS系统可直接使用终端:
ssh username@server_ip
Windows用户可使用PuTTY、Xshell等工具,首次连接时,系统会提示确认主机密钥,输入yes即可,若配置了密钥认证,需添加-i参数指定密钥文件路径(如ssh -i /path/to/key username@server_ip)。
常见问题排查
若连接失败,可按以下步骤排查:
- 检查SSH服务状态:确保
sshd服务正在运行。 - 查看日志:通过
journalctl -u sshd查看错误信息。 - 防火墙设置:确认端口已开放且未被阻止。
- SELinux配置:若启用SELinux,可能需执行
setsebool -P sshd_can_network_connect 1。
相关问答FAQs
Q1: 如何修改SSH默认端口以提高安全性?
A1: 编辑/etc/ssh/sshd_config文件,找到Port 22,将其修改为其他端口(如Port 2222),保存后重启SSH服务(sudo systemctl restart sshd),需在防火墙中开放新端口(sudo firewall-cmd --permanent --add-port=2222/tcp并重载防火墙)。
Q2: 忘记SSH密码且无法登录时如何重置?
A2: 若无法通过SSH登录,可进入CentOS系统的救援模式或直接在控制台操作,以root用户登录后,执行passwd username重置用户密码,若需重置SSH密钥,可删除用户目录下的.ssh文件夹(rm -rf /home/username/.ssh),之后重新生成密钥对即可。