温馨提示×

centos怎样修复ssh配置

小樊
53
2026-07-19 08:08:21
栏目: 智能运维

在 CentOS 系统中修复 SSH 配置,通常分为配置文件修复、权限修复、服务问题排查三大类。下面按常见场景给你一个实用排查与修复指南(适用于 CentOS 7 / 8 / Stream)。


一、先确认 SSH 服务状态

systemctl status sshd

常见状态

  • active (running):服务正常
  • failed / inactive:服务未启动或配置错误

启动 / 重启:

systemctl start sshd
systemctl restart sshd

如果启动失败,继续往下看。


二、检查 SSH 配置文件是否正确

SSH 主配置文件:

/etc/ssh/sshd_config

1️⃣ 检查配置文件语法

sshd -t

✅ 无输出 = 配置正常
❌ 有输出 = 配置错误(会提示哪一行有问题)

示例错误:

/etc/ssh/sshd_config line 45: unsupported option

三、常见 SSH 配置错误及修复

1️⃣ 端口被改坏

Port 22

✅ 确保没有被改成不存在或冲突的端口
❌ 错误示例:

Port abc

修复:

vi /etc/ssh/sshd_config

改回:

Port 22

重启:

systemctl restart sshd

2️⃣ 禁止 root 登录导致无法登录

PermitRootLogin yes

如果你被锁在外面,可临时改为:

PermitRootLogin yes

3️⃣ 密钥认证配置错误

如果你用密钥登录失败:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

检查权限(非常重要):

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R 用户名:用户名 ~/.ssh

4️⃣ SELinux 导致 SSH 无法启动

查看 SELinux 状态:

getenforce

如果是 Enforcing,尝试临时关闭测试:

setenforce 0
systemctl restart sshd

✅ 如果这样能启动,说明是 SELinux 问题
修复方法:

restorecon -Rv /etc/ssh
restorecon -Rv ~/.ssh

四、SSH 相关文件权限修复(非常常见)

1️⃣ 修复 SSH 主机密钥权限

chmod 600 /etc/ssh/ssh_host_*
chmod 644 /etc/ssh/ssh_host_*.pub

如果主机密钥丢失,可重新生成:

ssh-keygen -A
systemctl restart sshd

五、防火墙 / 端口问题

1️⃣ 检查端口是否开放

ss -lntp | grep ssh

2️⃣ 防火墙放行 SSH

firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload

六、彻底恢复默认 SSH 配置(慎用)

如果你改乱了,可以恢复默认配置:

cp /etc/ssh/sshd_config.rpmsave /etc/ssh/sshd_config

或重装 SSH:

yum reinstall openssh-server -y
systemctl restart sshd

七、快速排查清单(推荐)

sshd -t
systemctl status sshd
ls -ld ~/.ssh
ls -l ~/.ssh/authorized_keys
getenforce
ss -lntp | grep ssh

八、如果你愿意,我可以更精确帮你

你可以直接贴出:

  • sshd -t 的输出
  • systemctl status sshd 的输出
  • 报错信息(连接失败 / 启动失败)

我可以直接帮你定位是哪一行配置或权限问题

0