温馨提示×

centos ssh无法启动怎办

小樊
67
2026-09-02 16:43:11
栏目: 智能运维

在 CentOS 上 SSH(通常是 sshd)无法启动,常见原因和排查/解决办法如下,按从快到慢的顺序来:


一、先看错误信息(最重要)

systemctl status sshd
journalctl -xe

根据报错信息通常能直接定位问题。


二、最常见原因与对应处理

1️⃣ 端口被占用

报错类似:

bind: Address already in use

检查:

ss -lntp | grep :22

解决:

  • 杀掉占用进程
  • 或修改 /etc/ssh/sshd_config 的 Port

2️⃣ 配置文件语法错误(非常常见)

sshd -t

如果有错,会直接提示哪一行有问题。

修改后重启:

systemctl restart sshd

3️⃣ 权限问题(主机密钥)

报错类似:

Permissions 0644 for '/etc/ssh/ssh_host_rsa_key' are too open

解决:

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

重新生成密钥(必要时):

ssh-keygen -A

4️⃣ SELinux 导致启动失败

getenforce

如果是 Enforcing:

setenforce 0
systemctl restart sshd

如果这样能启动,说明是 SELinux 策略问题,可:

restorecon -Rv /etc/ssh

5️⃣ 防火墙 / 安全组

SSH 起不来≠连不上,先确认是否启动成功:

systemctl is-active sshd

若已运行但连不上:

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

6️⃣ /var/empty/sshd 权限异常

ls -ld /var/empty/sshd

应为:

drwxr-xr-x. root root

修复:

chown root:root /var/empty/sshd
chmod 755 /var/empty/sshd

7️⃣ 系统崩溃 / 磁盘满

df -h

磁盘满会导致 sshd 无法写日志。


三、应急方案(连不上服务器时)

如果你已经连不上服务器:

  • 通过 云厂商控制台 / VNC 登录
  • 或进入 单用户模式 / 救援模式

四、最小排错流程(推荐)

sshd -t
systemctl status sshd
journalctl -xe

如果你愿意,可以把 systemctl status sshd 或 journalctl 的报错内容贴出来,我可以直接帮你精确定位。

0 踩