Linux系统的ECS实例中,启动SSH服务时提示“fatal: Cannot bind any address”错误怎么办?

问题现象

Linux实例启动SSH服务失败,导致无法通过SSH远程连接。其系统日志(/var/log/secure)中出现以下错误:

FAILED.
fatal: Cannot bind any address.
address family must be specified before ListenAddress.

问题原因

SSH 配置文件/etc/ssh/sshd_config中的AddressFamily参数被设置为inet6,强制SSH服务仅监听IPv6地址。当前系统未启用IPv6支持,导致sshd服务因无法绑定到IPv6地址而启动失败。

解决方案

由于SSH服务异常,通过VNC方式登录实例,检查并修正SSH配置文件。修改完成后重启服务,验证功能是否恢复正常。

  1. 通过VNC连接登录ECS实例。

    1. 访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。

    2. 进入目标实例详情页,单击远程连接,选择通过VNC远程连接。输入账号和密码,登录ECS实例。

  2. 编辑SSH配置文件/etc/ssh/sshd_config,找到AddressFamily inet6。配置SSH服务仅监听IPv4地址。

    AddressFamily inet
  3. 重启SSH服务。

    systemctl restart sshd.service

后续建议

若业务需要使用IPv6,应先为实例启用并配置IPv6,成功后再将AddressFamily参数设为inet6