Linux系统的ECS实例中,启动SSH服务提示“Failed to start OpenSSh server daemon”错误怎么办?

本文介绍在Linux系统的ECS实例中,启动SSH服务提示“Failed to start OpenSSh server daemon”错误的原因和解决方案。

问题现象

在Linux系统的ECS实例中,SSH服务(sshd.service)无法启动,运行systemctl status sshd.service查看SSH服务提示“Failed to start OpenSSh server daemon”错误。

sshd状态

问题原因

该问题可能是因为SSH服务端口(22)被占用导致。

解决方案

您可以通过根据业务需要,修改占用22端口服务的端口号或修改SSH服务端口来解决此问题。

  1. 以VNC方式远程连接ECS实例。

    具体操作,请参见连接方式概述

  2. 执行如下命令,以测试模式运行SSH服务。

    /sbin/sshd -d

    显示信息如下,表示22端口被占用,导致SSH服务无法启动。

    端口被占用
  3. 执行如下命令,查看22端口被占用情况。

    ss -tunlp | grep 22

    显示信息如下,表示22端口被Nginx服务占用。

    重要

    本文中22端口被Nginx服务占用仅为示例说明,请以实际为准。

    Ngnix占用22
  4. 您可以根据需要,选择合适的方案来解决此问题。

    • 修改Nginx服务端口号。

      1. 执行如下命令,打开nginx.conf配置文件。

        vim /etc/nginx/nginx.conf
      2. 将Nginx占用的端口号修改为80。

        修改Ngnix占用端口
      3. 按下Esc键后,输入:wq并按Enter键以保存关闭配置文件。

      4. 执行以下命令,重启Nginx服务。

        systemctl restart nginx 
      5. 执行以下命令,重启SSH服务。

        systemctl restart sshd.service 
    • 修改SSH服务端口号。

      1. 执行如下命令,打开ssh_config配置文件。

        vim /etc/ssh/sshd_config
      2. 修改SSH服务的端口号,例如修改为2222。

        修改SSH占用端口
      3. 按下Esc键后,输入:wq并按Enter键以保存关闭配置文件。

      4. 执行以下命令,重启SSH服务。

        systemctl restart sshd.service