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