本文仅供学习,有问题可联系科劳得在线工程师提供技术服务。

问题描述

通过SSH远程登录Linux系统的ECS实例时,连接失败,无法正常登录Linux实例。

问题原因

下图为SSH远程登录的关联因素示意图,由此可见,SSH远程登录失败的可能原因较多。为定位具体的问题原因,请参见解决方案。

解决方案

科劳得提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

请您根据现场的实际情况,并结合以下引导,从中选择最符合您现场实际情况的一种:

  • SSH登录失败时存在明确的报错信息
  • SSH登录失败时没有明确的报错信息
  • 情况紧急,需要快速登录Linux实例

SSH登录失败时存在明确的报错信息

处理流程图

详细信息

SSH远程登录失败时,系统通常会返回报错信息。您可以根据报错信息,从以下常见的报错信息中匹配符合您现场实际情况的报错,快速定位问题原因及解决方案。

说明:如果您的报错信息不在以下列表中,您可以通过搜索引擎查询报错信息,或者您也可以参见本文中的排查方案。

  • SSH配置
    SSH服务的默认配置文件为/etc/ssh/sshd_config。如果该配置文件中的相关参数配置异常,或启用了相关特性或策略,可能会导致SSH登录失败。常见的报错如下:

    • SSH登录时报错:Disconnected:No supported authentication methods available
    • SSH登录时报错:User root not allowed because not listed in
    • SSH登录时报错:Permission denied, please try again
    • SSH登录时报错:Too many authentication failures for root
    • SSH启动时报错:error while loading shared libraries
    • SSH启动时报错:fatal: Cannot bind any address
    • SSH启动时报错:Bad configuration options
    • 云服务器ECS Linux SSH启用UseDNS导致连接速度变慢
    • Linux实例中由于SELinux服务开启导致SSH远程登录异常
    • SSH登录时报错:No supported key exchange algorithms
    • SSH启动时报错:must be owned by root and not group or word-writable
    • SSH登录时报错:Host key verification failed
  • 安全配置

    Linux系统的PAM安全框架可以加载相关安全模块,对云服务器的账户策略、登录策略等进行访问控制。如果相关配置存在异常,或触发了相关策略,可能会导致SSH登录失败。常见的报错如下:

    • SSH登录时报错:pam_listfile(sshd:auth): Refused user root for service sshd
    • SSH登录时报错:requirement “uid >= 1000” not met by user “root”
    • SSH登录时出现如下错误:Maximum amount of failed attempts was reached
    • SSH登录时出现如下错误:login: Module is unknown
  • Linux实例的系统配置

    Linux内的系统环境如果出现异常,也可能会导致SSH登录失败,例如中毒、账户配置、环境变量配置等。常见的报错如下:

    • SSH登录时报错:ssh_exchange_identification: read: Connection reset by peer
    • 病毒软件导致SSH服务运行异常并报错:fatal: mm_request_send: write: Broken pipe
    • SSH启动时报错:main process exited, code=exited
    • SSH连接时报错:pam_limits(sshd:session):could not sent limit for ‘nofile’
    • SSH连接时报错:pam_unix(sshdsession) session closed for user
    • SSH连接时报错:error Could not get shadow infromation for root

SSH登录失败时没有明确的报错信息

处理流程图

详细信息

如果您没有收到系统返回的报错信息,请根据以下步骤进行排查。

步骤一:检查ECS实例的状态

无论何种原因导致无法远程登录ECS实例,请先检查实例的状态。只有当ECS实例为运行中状态时,才能对外提供业务访问。检查步骤如下:

  1. 登录云服务器管理控制台。
  2. 单击左侧导航栏中的实例,查看目标实例的状态
    • 目标实例不是运行中的状态

      请参见ECS实例生命周期,根据实例的状态,选择对应的解决方案。
    • 目标实例是运行中的状态
      参见下一步骤继续排查。
步骤二:使用阿里云Workbench工具测试远程登录

通过阿里云提供的Workbench工具进行远程登录,Workbench工具在远程登录出现异常时会返回具体的错误信息及解决方案。测试步骤如下:

  1. 登录云服务器管理控制台。
  2. 单击左侧导航栏中的实例,在实例列表找到您需要远程登录的目标实例,单击远程连接,在弹出的页面中选择Workbench远程连接的方式。
  3. Workbench工具将自动填充登录目标实例所需的基本信息,请确认基本信息的正确性并输入登录的用户名和认证信息。关于如何使用Workbench工具,请参见通过Workbench远程登录Linux实例。并根据以下结果进行处理:
    • 仍然无法登录
      Workbench工具会返回错误提示和解决方案,请根据系统提示进行处理。处理完毕后重新使用Workbench工具进行远程登录测试。为了便于您解决问题,以下列举Workbench工具使用时常见的异常问题:

      • Workbench工具远程登录Linux实例时提示连接超时
      • Workbench工具远程登录Linux实例时提示“用户名或密码不正确”
    • 正常登录
      该情况表明目标实例上的SSH服务正常运行,即排除SSH服务端异常的可能性,请参见下一步骤继续排查SSH客户端问题。
步骤三:使用本地SSH工具测试远程登录

当您通过Workbench工具可以正常远程登录Linux实例时,请尝试通过本地SSH客户端工具测试远程登录。并根据以下结果进行处理:

  • 无法登录
    通常是因为您本地SSH客户端或者本地网络存在异常导致无法远程登录Linux实例。以下列举常见的问题原因及解决方案供您参考:

    说明:您可以通过对比测试来确认问题根源。例如,通过其他设备上的SSH客户端远程登录您的Linux实例,以判断本地SSH客户端是否配置错误。

    • 本地网络的外网IP地址未被授权访问ECS实例。
      请检查ECS实例的安全组规则,以及您是否通过Linux实例内的防火墙(Firewalld、Iptables、安全狗等)限制了本地网络的访问。正确的SSH远程连接安全组规则如下图。

      说明

      • 此处的授权对象仅供参考,实际情况中以您客户端的公网IP地址为准。
      • 如果您使用客户端的公网IP地址后仍然无效,可以继续尝试将授权对象设置为0.0.0.0/0。更多有关安全组规则的信息,请参见ECS的安全组应用案例。

      关于Linux实例内的防火墙设置,请联系您的服务器管理员获取详情。

    • 本地SSH客户端配置错误
      请参照Workbench工具中的配置设置您本地SSH客户端的远程登录设置。
  • 正常登录
    如果您可以通过本地SSH客户端远程登录Linux实例,则故障解决。

    说明:如果本文对您有帮助,请在文档底部进行反馈。

需要快速登录Linux实例

处理流程图

详细信息

如果您遇到的情况比较紧急,需要尽快登录Linux实例,建议您先参见检查ECS实例的状态章节,确认ECS实例是运行中的状态,然后尝试通过阿里云云助手向Linux实例发送命令。云助手的使用步骤如下:

  1. 登录云服务器管理控制台。
  2. 单击左侧导航栏中的实例,在实例列表找到您需要远程登录的目标实例,单击远程连接,在弹出的页面中选择发送远程命令(云助手)的方式。
  3. 输入您需要执行的命令后单击执行按钮,即可在未登录Linux实例的情况下执行命令。更多有关云助手的信息,请参见云助手概述。

如果云助手无法使用或者无法满足您的使用需求,您还可以通过阿里云VNC工具进行远程登录,使用方法如下:

  1. 登录云服务器管理控制台。
  2. 单击左侧导航栏中的实例,在实例列表找到您需要远程登录的目标实例,单击远程连接,在弹出的页面中选择VNC远程连接的方式。
  3. 输入VNC远程连接密码即可登录。更多有关VNC功能的信息,请参见通过VNC远程登录Linux实例。

    说明

    • 在首次连接或忘记VNC密码时,请单击修改远程连接密码,修改VNC的密码后重试。
    • 通过VNC登录Linux实例后,需要输入Linux实例的用户名和密码。如果您忘记了Linux实例的密码,请重置Linux实例的密码,详情请参见重置实例登录密码。

如果您通过VNC仍然无法登录Linux实例,请记录您当前的问题现象并提交工单联系阿里云技术支持。

相关文档

  • 远程桌面无法连接到Windows实例

适用于

  • 云服务器ECS

如果您的问题仍未解决,您可以在阿里云社区免费咨询,或提交工单联系阿里云技术支持。

您可联系科劳得在线服务工程师提供技术支持。

科劳得提供以下专业云服务:
上云服务:上云架构设计,大流量高并发架构设计,混合云架构设计,上云迁移,云上容灾,跨国云访问加速等;

安全服务:等保咨询及实施,渗透测试,漏洞扫描,木马查杀,安全加固,应急响应,DDOS/CC防护,勒索病毒防护,安全托管等;

运维服务:Linux系统运维,数据恢复及备份,负载均衡集群搭建及维护,数据库集群搭建及维护,网站运行环境搭建及维护,系统性能调优,中间件性能调优,数据库性能调优,数据库读写分离,分库分表,性能(压力)测试,7*24小时监控及故障应急响应,故障排查,大流量高并发活动护航等。

另外,找科劳得购买阿里云产品有很大优惠哦!详情咨询17155320707(微信同号)