SSH 无法远程登录问题的处理思路

简介: 购买云服务器 ECS(后续简称 ECS)Linux 服务器后,首先面临的就是如何登录和使用的问题。而由于服务器在云端,所以日常运维中通常都会基于 SSH 客户端登录服务器进行相关操作。今天,我们就从登录 ECS 的不同方法和使用场景讲起,捋清 SSH 无法远程登录问题的常见原因与排查思路。


购买云服务器 ECS(后续简称 ECS)Linux 服务器后,首先面临的就是如何登录和使用的问题。而由于服务器在云端,所以日常运维中通常都会基于 SSH 客户端登录服务器进行相关操作。今天,我们就从登录 ECS 的不同方法和使用场景讲起,捋清 SSH 无法远程登录问题的常见原因与排查思路。

ECS Linux 服务器的登录方式

ECS Linux 不同登录方式示意图

ECS Linux 不同登录方式示意图

如上图所示,当前 ECS Linux 支持 3 种不同的登录方式,其操作说明与使用场景如下:


1.管理终端(远程连接)

  • 使用场景:当出现 ECS 启动异常、网络中断或 SSH 无法正常连接等情况时,可以通过管理终端(远程连接)功能直接连接服务器。它基于 VNC 技术,相当于在 ECS 上直连了一台虚拟的显示器(含鼠标、键盘)
  • 操作说明:管理终端的使用方法,可以参阅 产品文档

2.SSH

  • 使用场景:标准的 Linux 服务器连接方式。您可以通过各种 Linux SSH 客户端连接、登录 ECS,进行服务器的运维和管理工作。
  • 操作说明:使用常用 SSH 客户端连接、登录 ECS Linux 服务器的操作方法,可以惨阅 产品文档

3.SSH 密钥对

  • 使用场景:基于密钥对的免密码登录,降低了密码泄露的风险,提高了操作的安全性,同时也便于服务器的批量运维。
  • 操作说明:SSH 密钥对的使用方法,可以参阅 产品文档

SSH 无法远程登录问题的常见原因与处理思路

如前所述,SSH 客户端是 ECS Linux 服务器的主要的运维途径。而网络、服务器配置、SSH 服务配置等多种因素均可能会导致 SSH 连接或登录过程出现异常。接下来会先介绍影响 SSH 连接或登录的常见因素,然后说明此类问题的分析处理思路。

SSH 连接登录相关因素

SSH 连接登录相关因素示意图

SSH 连接登录相关因素示意图

如上图所示,多种因素均可能会导致客户端通过 SSH 连接或登录服务器出现异常,包括但不限于:

  • 客户端软件或软件配置问题
  • 客户端网络问题
  • 中间链路问题
  • 云盾、ECS 安全组或系统内 iptables 等安全配置问题
  • Linux 系统 PAM 安全模块配置问题
  • Linux 系统环境配置问题
  • SSH 服务及参数配置问题
  • SSH 服务关联的目录或文件的属性配置问题
  • SSH 服务密钥配置问题

SSH 无法远程登录问题处理思路

SSH 无法远程登录问题处理思路示意图

SSH 无法远程登录问题处理思路示意图

如果 SSH 无法正常连接或登录,可以参阅上图,通过如下步骤逐一进行排查分析:

1. 检查客户端软件配置与网络配置

通过如下方法做对比分析,以判断是否是客户端软件、软件配置或客户端网络存在异常,导致无法正常 SSH 连接或登录服务器:

  • 重启家用路由器,或通过 4G 热点共享的方式,切换到不同的网络做对比测试
  • 基于相同账户,使用不同的 SSH 客户端软件做对比访问测试

2. 检查中间网络

通过如下方法对中间网络做判断和对比分析,以判断是否是中间网络引发的异常:

  1. ping 服务器 IP ,看是否正常。比如:ping 223.5.5.5  
  2. telnet <服务器 IP>    ,看是否正常。比如:     telnet 223.5.5.5 22  
    • 正常情况下,如下图所示,会返回服务端 SSH 软件版本号信息:             telnet SSH 端口测试正常示意图
    • 如果不正常,则说明可能是 SSH 服务异常或被云盾、安全组等拦截所致,则参阅后续步骤继续排查分析。

3. 安全配置检查

通过如下方法,对 SSH 连接相关安全因素进行排查分析:

  1. 通过 淘宝 IP 地址库 等网站获取本地网络出口公网 IP 后,到云盾控制台 查询相关访问是否被云盾拦截。
  2. 检查服务器归属安全组规则,确认对客户端做了访问放行。
  3. 检查服务器内部 iptables 等安全配置,确认对客户端做了访问放行。

4. SSH 服务与监听状态检查

通过如下方法,检查 SSH 服务自身运行状态:

  1. 可以通过 管理终端 进入服务器。
  2. 通过如下指令检查 SSH 服务运行状态。如果服务运行正常,则会返回运行状态及相应进程 PID:

    [root@centos ~]# service sshd status
    openssh-daemon (pid 31350) is running…
    [root@centos ~]# service sshd restart
    Stopping sshd: [ OK ]
    Starting sshd: [ OK ]
  3. 通过如下指令检查 SSH 服务的端口监听状态。正常情况下会返回相应端口监听信息:

    netstat -ano | grep 0.0.0.0:22
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN off (0.00/0/0)
    • 0.0.0.0 表示监听所有网卡
    • 如果配置仅监听内网网卡,比如10.126.3.45:22,则只能通过内网进行 SSH 登录
  4. 在系统内通过类似 ssh 127.0.0.1 的方式做对比测试,以判断 SSH 服务连接是否正常:
  5. 用法: ssh -p  127.0.0.1 比如:

    ssh 127.0.0.1
    ssh -p 2022 127.0.0.1

    如果上述登录测试正常,则说明 SSH 服务本身运行与监听是正常的。则通过后续步骤做进一步排查分析。

5. SSH 登录错误进一步分析

如果确认 SSH 服务及外部网络链路正常,则可以通过如下方法,进一步检查 SSH 登录具体错误信息,然后结合历史案例做相应分析和处理:

  1. 配置实时查看 SSH 服务端安全日志:
    通过管理终端进入服务器。通过类似如下指令实时查看 SSH 服务端安全日志:

    CentOS 服务器:tailf /var/log/secure
    Ubuntu 服务器:tailf /var/log/auth
  2. 开启客户端 SSH debug 模式,获取客户端详细登录日志:
    如果客户端是 Linux 环境,则可以通过如下指令,获取详细的 SSH 登录交互日志:

    ssh -vvv <服务器 IP>

    比如:

    [root@centos~]# ssh -vvv 192.168.0.1
    OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
    debug1: Reading configuration data /etc/ssh/ssh_config
    debug1: Applying options for *
    debug2: ssh_connect: needpriv 0
    debug1: Connecting to 192.168.0.1 [192.168.0.1] port 22.
    debug1: connect to address 192.168.0.1 port 22: Connection timed out
    ssh: connect to host 192.168.0.1 port 22: Connection timed out
    ...
  3. 参阅 历史案例,结合前述步骤获取的 SSH 客户端及服务端的日志进行对比分析和处理。

附录:SSH 登录原理


本期分享专家:本期分享专家:五贤,搞过开发,玩过小机、AIX,目前在阿里云从事云产品技术支持,专注于云计算相关的系统运维。奉行“上天给了人两只手,两只眼,而只有一张嘴。就是要让我们多动手,多观察,少耍嘴皮。”

相关实践学习
基于ECS搭建云上博客
本实验教您如何在ECS云服务器(Alibaba Cloud Linux 3)的环境下,通过部署LAMP环境并安装WordPress快速搭建个人博客。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
SQL 存储 前端开发
SQL注入从入门到进阶(一)---&gt;入门篇
看完本章节内容:1. 知道什么是Sql注入 2. 实现最基础的Sql注入
3099 0
|
Linux
linux grep查看指定内容上下几行
linux系统中,可以利用grep查看指定的内容, 比如:grep “123” test.log //查看test.
6706 0
|
缓存 开发者 CDN
CDN 刷新功能| 学习笔记
快速学习 CDN 刷新功能。
|
人工智能 弹性计算 安全
创新场景丨元空智能:AI 工具创业,如何抓住新时代的出海机遇
大模型创业的本质是兑现新技术价值,而乘云出海,不仅是技术的输出,更是中国创新走向世界的一次实践。
|
Linux Shell
Linux系统文件默认权限
Linux系统文件默认权限
603 2
|
Linux Shell 网络安全
centos7添加ip黑名单禁止某个ip访问
centos7添加ip黑名单禁止某个ip访问
1174 1
|
Python
Langchain使用OpenAI报错AttributeError: module ‘openai‘ has no attribute ‘error 的解决方案
这篇文章描述了作者在使用Python的`openai`和`langchain`库时遇到的错误,错误的提示是`AttributeError: module 'openai' has no attribute 'error'`。文章通过分析环境和版本信息,发现问题出在`langchain`库的版本过旧。作者通过卸载旧版本并安装指定版本的`langchain`库解决了问题,并总结了在遇到此类问题时检查和更新依赖库的重要性。
3006 2
|
Linux 开发工具
Linux yum 使用时提示 获取 GPG 密钥失败Couldn‘t open file RPM-GPG-KEY-EPEL-7
Linux yum 使用时提示 获取 GPG 密钥失败Couldn‘t open file RPM-GPG-KEY-EPEL-7
707 2
|
存储 机器学习/深度学习 异构计算
Transformers 4.37 中文文档(十九)(8)
Transformers 4.37 中文文档(十九)
1076 2
|
机器学习/深度学习 算法 自动驾驶
深度强化学习在大模型中的应用:现状、问题和发展
强化学习在大模型中的应用具有广泛的潜力和机会。通过使用强化学习算法,如DQN、PPO和TRPO,可以训练具有复杂决策能力的智能体,在自动驾驶、机器人控制和游戏玩家等领域取得显著成果。然而,仍然存在一些挑战,如样本效率、探索与利用平衡以及可解释性问题。未来的研究方向包括提高样本效率、改进探索策略和探索可解释的强化学习算法,以进一步推动强化学习在大模型中的应用。
3801 3

热门文章

最新文章