问题现象

使用SSH或Workbench无法连接ECS实例,通过实例健康诊断显示:该实例sshd进程当前正在监听的地址和端口与配置的地址和端口不一致,可能导致SSH连接预期的地址和端口时失败。

可能原因

sshd进程当前正在监听的地址和端口不在sshd的配置文件/etc/ssh/sshd_config中,导致无法连接ECS实例。

解决方案

您可以参考以下步骤,根据实际需要修改SSH服务监听配置的地址和端口来解决上述问题。

  1. 使用VNC远程连接ECS实例。
    具体操作,请参见连接方式概述
    说明 通过SSH无法登录ECS实例时,只能通过VNC登录实例进行操作。
  2. 查看sshd_config配置文件中端口号与sshd进程实际占用端口号是否一致。

    如果不一致,请继续执行步骤3修改sshd_config配置文件。

    • 查看sshd_config配置的端口号:
      sshd -T
      如下图示例,sshd_config配置文件中端口号为23。查看sshd配置
    • 查看sshd进程实际占用端口号:
      netstat -ntlp |grep sshd
      说明 如以上命令无法运行,请执行ss -tlnp | grep sshd
      如下图示例,配置文件中sshd进程实际占用端口号为22,与sshd_config配置文件中端口号23不同,则需要执行步骤3修改sshd_config配置文件。查看sshd进程实际端口
  3. 修改sshd_config配置文件。
    1. 打开sshd_config配置文件。
      vim /etc/ssh/sshd_config
    2. i键进入编辑模式。
    3. 根据业务需要,修改sshd_config配置文件中的端口号。
      sshd_config配置文件中端口号应与sshd进程实际占用端口号相同,本文示例中,需删除Port 23删除错误端口
    4. 修改完成后按Esc键,输入:wq后按Enter键,保存并退出。
  4. 重启sshd服务。
    systemctl restart sshd