SSH服务未启动导致无法远程连接Linux实例怎么办?

更新时间:
复制为 MD 格式

通过SSH的方式连接实例时,需确保实例中SSH服务处于启动状态,否则无法远程连接实例,本文为您介绍如何排查SSH服务的状态及如何启动SSH服务。

问题现象

对于Linux系统的ECS实例,使用SSH无法登录,使用VNC登录后,执行systemctl status sshd.service命令查看SSH服务(sshd.service)的状态。如果状态返回结果为inactive(dead),表示SSH服务未启动,这将导致无法使用SSH远程连接实例。

# systemctl status sshd.service
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; vendor preset: enabled)
   Active: inactive (dead) since Mon 2021-02-01 20:37:28 CST; 1s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
  Process: 1034 ExecStart=/usr/sbin/sshd -D $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 1034 (code=exited, status=0/SUCCESS)

问题原因

SSH服务未启动有很多原因,例如sshd进程未设置开机自启动、sshd关键目录的owner属性或group属组设置错误、SSH服务配置文件异常、PATH环境变量配置异常、端口被占用等。

解决方案

  1. 使用VNC远程连接ECS实例。

    具体操作,请参见通过VNC连接实例

  2. 执行如下命令,查看SSH服务的状态。

    systemctl status sshd.service

    返回结果为inactive(dead),表示sshd.service进程未启动。

  3. 执行如下命令,启动SSH服务并设置SSH服务开机时自启动。

    sudo systemctl start sshd.service
    sudo systemctl enable sshd.service

    如果启动中出现具体报错信息,您可以根据提示进行修复。常见SSH服务无法启动问题的解决方案如下: