全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
云服务器 ECS

云服务器 ECS Linux SSH 无法远程登录问题排查指引

更新时间:2017-08-08 09:22:30

注意:本文相关配置及说明在 CentOS 6.5 64 bit 操作系统中进行测试,其它类型及版本操作系统配置可能有所差异,具体情况请参阅相应操作系统官方文档。

注意: SSH 客户端是云服务器 ECS Linux主要的运维途径。管理终端可以用于临时运维,或者在客户端登录出现异常时,用于问题排查分析。

常见的问题现象

下图为 SSH 登录关联因素示意图:

factors

客户端问题

客户端无法正常登录时,先使用不同的 SSH 客户端基于相同账户信息进行登录测试。如果能正常登录,则判断是客户端配置问题,需要对客户端配置或软件运行情况做排查分析。云服务器 ECS Linux 的登录过程说明,参阅登录实例

中间网络问题

客户端无法正常通过 SSH 连接云服务器时,通过 telnet <服务器 IP> <SSH 服务端口>,比如:telnet 192.168.0.1 22 进行 telnet 端口测试,判断是否是中间网络异常所致。正常情况下,会返回如下图所示的服务端 SSH 软件版本号:

results

如果端口测试失败,参阅下列文档对客户端到服务器之间的网络做进一步排查分析:

PAM 安全框架相关问题

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

Linux 系统环境配置问题

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

SSH 服务及参数配置问题

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

SSH 服务关联目录或文件配置问题

SSH 服务基于安全性考虑,在运行时,会对相关目录或文件的权限配置、属组等进行检查。过高或过低的权限配置,都可能会引发服务运行异常,进而导致客户端登录失败。常见案例如下:

SSH 服务密钥配置问题

SSH 服务采用非对称加密技术,对所传输的数据进行加密。客户端及服务端会交换和校验相关密钥信息的有效性。常见案例如下:

排查 SSH 无法登录问题步骤

如果根据前述问题场景进行排查和处理后,还是无法正常登录。则建议按照如下步骤进行逐一排查分析:

  1. 使用不同的 SSH 客户端及 管理终端 做对比访问测试,判断是否个别客户端自身配置或软件运行问题所致。

  2. 参阅中间网络问题相关说明测试网络连通性。

  3. 参阅管理终端登录云服务器,在客户端重新访问测试时执行命令 tailf /var/log/secure
  4. 执行命令 ssh -vvv <服务器 IP>,比如,ssh -vvv 192.168.0.1 获取 Linux 环境详细的 SSH 登录交互日志:
  5. 通过管理终端 登录云服务器,检查 SSH 服务运行状态:

    1. 执行下列命令检查服务运行状态,正常情况下会返回运行状态及相应进程 PID:

      1. [root@centos ~]# service sshd status
      2. openssh-daemon (pid 31350) is running...
      3. [root@centos ~]# service sshd restart
      4. Stopping sshd: [ OK ]
      5. Starting sshd: [ OK ]
    2. 执行下列命令检查服务监听状态,正常情况下会返回相应端口监听信息:

      1. netstat -ano | grep 0.0.0.0:22
      2. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN off (0.00/0/0)
    3. 通过 管理终端登录云服务器,然后 ssh 127.0.0.1。如果能正常登录,则推断是系统防火墙或外部安全组策略等配置异常,导致客户端登录失败。

如问题还未解决,请记录前述各步骤的测试结果,及相关日志信息或截图,提交工单联系阿里云。

本文导读目录