sshd配置错误导致无法远程连接ECS实例该如何解决?

本文主要介绍sshd配置错误导致无法远程连接ECS实例的原因以及解决方案。

问题现象

修改sshd配置文件后直接重启了实例,无法使用Workbench或第三方远程连接工具(例如PuTTY、Xshell、SecureCRT等)连接实例。

问题原因

/etc/ssh/sshd_config文件配置错误,导致SSH服务启动失败,造成无法通过基于SSH协议的远程登录方式连接ECS实例。

解决方案

通过VNC的方式远程连接ECS实例,检查并确认sshd配置的错误,修正后重启sshd服务。

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

    具体操作,请参见使用VNC登录实例

  2. 执行以下命令,查找sshd所在路径。

    which sshd

    返回如下,表示sshd所在路径为/usr/sbin/sshd

    image

  3. 执行以下命令,以测试模式运行sshd,检查sshd配置是否正确。

    重要

    每次修改完sshd配置后,建议您在重启实例之前,先通过以下命令检查配置是否正确,这样可以有效避免出现本文描述的问题。

    sudo /usr/sbin/sshd -t
    • 无返回信息时,说明sshd配置正确。

    • 有返回信息时,说明sshd配置错误。如下所示,说明/etc/ssh/sshd_config配置文件第144行的配置参数值被设置为不支持的"no1",需要修改。

      image

  4. 修改sshd配置文件/etc/ssh/sshd_config

    1. 打开/etc/ssh/sshd_config配置文件。

      sudo vim /etc/ssh/sshd_config
    2. i进入编辑模式,按照错误提示定位到错误行并修正。例如,修改第144行的配置,将UseDNS的值修改为no。

      UseDNS no
    3. Esc键,输入:wq!,保存并退出编辑。

  5. 再次执行sudo /usr/sbin/sshd -t,确认配置是否已经修正。如下所示,无返回信息,表示错误已修正。

    image

  6. 重启sshd服务,使配置修改生效。

    sudo systemctl restart sshd.service
    说明

    如果您执行systemctl命令遇到错误,可参见在Linux实例中执行systemctl命令报错怎么办?