Linux系统的ECS实例中,启动SSH服务时未遇到任何错误信息,但是ssh服务未启动该怎么办?

更新时间:
复制为 MD 格式

本文介绍在Linux系统的ECS实例中,启动SSH服务时未遇到任何错误信息,但是ssh服务未启动的问题原因和解决方案。

问题现象

Linux系统的ECS实例中,使用servicesystemctl命令启动SSH服务时,命令行没有返回任何报错信息,但服务没有正常运行。

执行cat /var/log/secure查看secure日志,发现类似如下错误信息。

sshd.service: main process exited, code=exited, status=203/EXEC.
init: ssh main process (1843) terminated with status 255.

问题原因

该问题通常是因为PATH环境变量配置异常,或SSH软件包相关文件被移除。

解决方案

请按照如下操作步骤,进行检查并解决问题。

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

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

  2. 执行如下命令,检查环境变量配置。

    echo $PATH
    • 系统正常返回类似如下,该值为PATH环境变量的默认值。

      /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    • 若返回其他信息,表示环境变量的默认值被改变,则需执行如下命令,重置环境变量。

      export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
  3. 执行如下命令,查找并确认sshd程序的路径。

    find / -name sshd
    • 系统正常返回类似如下,包含sshd程序的默认路径。

      /usr/sbin/sshd
    • 如果相应文件不存在,建议执行如下命令,重新安装SSH软件包。

      yum install -y openssh
  4. 执行如下命令,重启SSH服务。

    systemctl restart sshd.service
  5. 执行如下命令,查看SSH服务状态。

    systemctl status sshd.service

    返回如下内容时,表示SSH服务为运行中。

    ● sshd.service - OpenSSH server daemon
       Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
       Active: active (running) since Fri 2023-03-17 16:27:41 CST; 5 days ago
         Docs: man:sshd(8)
               man:sshd_config(5)
     Main PID: 1327 (sshd)
        Tasks: 1 (limit: 85040)
       Memory: 127.9M
       CGroup: /system.slice/sshd.service
               └─1327 /usr/sbin/sshd -D -oCiphers=aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,aes128-cbc -oMACs=hmac-sha2-256-etm@openssh.com,hmac-sha1-etm@openssh.com