在CentOS系统中开启SSH连接是实现远程管理服务器的常用方法,SSH(Secure Shell)是一种加密的网络协议,能够安全地进行远程登录和文件传输,本文将详细介绍在CentOS系统中开启SSH连接的完整步骤,包括安装SSH服务、配置防火墙、启动服务以及常见问题的解决方案。

安装SSH服务
默认情况下,CentOS minimal安装可能不会预装SSH服务,因此需要手动安装,通过以下命令更新系统软件包列表:
sudo yum update -y
安装OpenSSH服务器软件包:
sudo yum install openssh-server -y
安装完成后,可以通过以下命令检查SSH服务是否已安装:
ssh --version
如果显示版本信息,则表示安装成功,安装过程中,系统会自动创建SSH配置文件,位于/etc/ssh/目录下。
配置SSH服务
安装完成后,需要对SSH服务进行基本配置以满足安全需求,编辑SSH配置文件/etc/ssh/sshd_config:
sudo vi /etc/ssh/sshd_config
在配置文件中,可以修改以下关键参数:
- Port:默认SSH端口为22,建议修改为其他端口以减少暴力破解风险。
- PermitRootLogin:禁用root用户直接登录,设置为
no。 - PasswordAuthentication:根据需求设置是否允许密码登录,建议结合密钥认证使用。
修改完成后,保存文件并退出编辑器,重启SSH服务使配置生效:

sudo systemctl restart sshd
配置防火墙规则
CentOS系统默认使用firewalld作为防火墙管理工具,需要开放SSH端口以允许远程连接,检查防火墙状态:
sudo firewall-cmd --state
如果防火墙处于运行状态,执行以下命令永久开放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
启动并设置开机自启
确保SSH服务已启动,并设置为开机自动启动:
sudo systemctl start sshd sudo systemctl enable sshd
通过以下命令检查服务状态:
sudo systemctl status sshd
如果显示active (running),则表示服务正常运行。
测试SSH连接
在本地终端中使用以下命令测试远程连接:

ssh username@server_ip
首次连接时,系统会提示保存主机密钥,输入yes后继续,如果配置了密钥认证,需要添加-i参数指定私钥路径:
ssh -i /path/to/private_key username@server_ip
连接成功后,即可通过SSH远程管理服务器。
常见问题排查
如果无法建立SSH连接,可以按照以下步骤排查:
- 检查SSH服务状态:确认
sshd服务正在运行。 - 查看日志文件:通过
/var/log/secure分析错误信息。 - 验证网络连通性:使用
telnet或nc测试端口是否开放。 - 检查防火墙和SELinux:确保防火墙规则正确,SELinux未阻止连接。
相关问答FAQs
问题1:如何修改SSH默认端口?
解答:编辑/etc/ssh/sshd_config文件,找到Port 22一行,将其修改为自定义端口(如Port 2222),保存后重启SSH服务,并在防火墙中开放新端口,注意避免使用常用端口以降低安全风险。
问题2:SSH连接超时如何解决?
解答:首先检查服务器网络是否正常,确认防火墙和SELinux设置,检查/etc/ssh/sshd_config中的MaxStartups和LoginGraceTime参数是否配置合理,查看/var/log/secure日志定位具体错误原因,如连接数限制或认证失败。