安装前的准备工作
在 CentOS 系统上部署 SSH(Secure Shell)是远程管理服务器的必备步骤,无论是本地开发环境还是生产服务器,SSH 都能提供加密的通信通道,保障数据传输的安全性,以下流程适用于 CentOS 7 及更高版本,操作前需确保已具备管理员权限(root 或 sudo)。
1、更新系统软件包

为避免兼容性问题,建议先更新系统至最新状态:
- yum update -y
若为 CentOS 8+ 系统,可使用dnf
替代yum
。
2、检查现有 SSH 服务
部分 CentOS 镜像可能预装 OpenSSH,可通过以下命令确认:
- systemctl status sshd
若返回“Active: active (running)”表示服务已启用,可直接进入配置环节;若未安装,则继续执行后续步骤。
安装 OpenSSH 服务
1、通过 YUM/DNF 安装软件包

执行以下命令安装 OpenSSH 服务端与客户端:
- yum install openssh-server openssh-clients -y
2、启动 SSH 服务并设置开机自启
- systemctl start sshd
- systemctl enable sshd
3、验证服务状态
- systemctl status sshd
若显示“Active: active (running)”,表示服务已正常运行。
配置 SSH 基础参数
默认配置文件路径为/etc/ssh/sshd_config
,修改前建议备份原始文件:
- cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
1、修改默认端口(可选)
为提升安全性,可更改默认的 22 端口,例如修改为 2222:
- sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config
2、禁用 root 用户直接登录(推荐)
避免使用 root 账户直接连接,降低被暴力破解的风险:
- sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
3、启用密钥认证(可选)
若需更高安全性,可禁用密码登录,仅允许密钥对验证:
- sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
4、重启 SSH 服务使配置生效
- systemctl restart sshd
防火墙与网络设置
1、开放 SSH 端口
若系统启用了防火墙(firewalld),需放行对应端口:
- firewall-cmd --permanent --add-port=2222/tcp # 若修改了默认端口,替换为实际值
- firewall-cmd --reload
若使用 iptables,可通过以下命令添加规则:
- iptables -I INPUT -p tcp --dport 2222 -j ACCEPT
- service iptables save
2、检查端口监听状态
- netstat -tuln | grep 2222
若输出包含“LISTEN”字样,表示端口已正常开放。
连接测试与故障排查
1、本地连接测试
从同一网络的其他设备尝试登录:
- ssh 用户名@服务器IP -p 2222
2、常见错误处理
连接超时:检查防火墙规则、云服务器安全组设置。
权限拒绝:确认用户名密码正确,或密钥文件权限是否为 600。
端口冲突:通过ss -tuln
确认端口未被其他服务占用。
安全性增强建议
1、定期更新 OpenSSH
通过yum update openssh
获取安全补丁,防范已知漏洞。
2、限制访问 IP 范围
在防火墙中设置白名单,仅允许特定 IP 访问 SSH 端口。
3、启用 Fail2Ban 防御暴力破解
安装 Fail2Ban 工具,自动屏蔽多次登录失败的 IP 地址。
个人观点
SSH 的安装与配置是服务器管理中不可忽视的基础环节,通过合理的参数调整与安全策略,不仅能提升运维效率,还能有效抵御外部攻击,对于长期运行的服务器,建议每季度审查一次 SSH 配置,及时跟进安全更新,技术文档的编写需注重可操作性,避免复杂术语堆砌,确保用户能够快速理解并执行。