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

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 连接或登录服务器出现异常,包括但不限于:

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

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

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

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

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

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

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

2. 检查中间网络

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

  1. ping 服务器 IP ,看是否正常。比如:ping 223.5.5.5

    • 如果正常,则说明客户端到服务端的中间链路是正常的。
    • 如果不正常,则可以参阅如下文档针对客户端到服务器之间的网络做进一步排查分析:
      • ping 丢包或不通时链路测试说明
      • 能 ping 通但端口不通时端口可用性探测说明
      • 网络异常时抓包操作说明
  2. telnet <服务器 IP> ,看是否正常。比如: telnet 223.5.5.5 22
    • 正常情况下,如下图所示,会返回服务端 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 服务连接是否正常:

用法: ssh -p <SSH 端口号,如果是默认的 22,则无需输入> 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 登录原理

可以参阅如下文档,了解 SSH 服务连接登录的相关原理,以便知其然知其所以然,更好的支撑此类问题的排查分析:

  • 云服务器 ECS Linux SSH 连接交互过程简介
  • 云服务器 ECS Linux SSH 基于密钥交换的自动登录原理简介及配置说明
本期分享专家:本期分享专家:五贤,搞过开发,玩过小机、AIX,目前在阿里云从事云产品技术支持,专注于云计算相关的系统运维。奉行“上天给了人两只手,两只眼,而只有一张嘴。就是要让我们多动手,多观察,少耍嘴皮。”

SSH 无法远程登录问题的处理思路相关推荐

  1. 捷讯技术分享SSH 无法远程登录问题的处理办法汇总

    前面小编给大家分享过云服务器和虚拟主机的区别,那么我们就会发现虚拟主机是不支持远程登录的.所以购买云服务器 ECS(后续简称 ECS)Linux 服务器后,就会面临如何登录和使用的问题.而由于服务器在 ...

  2. linux ssh连接交换机_访问SMB交换机CLI使用SSH或远程登录

    访问SMB交换机CLI使用SSH或远程登录 客观 Cisco小型企业被管理的交换机可以通过命令行界面(CLI)远程访问和被配置.访问CLI在一个基于终端的窗口允许命令被输入.如果喜欢配置使用在您的交换 ...

  3. 京东云 linux无法远程,问题解读 | Linux系统SSH无法远程登录时该怎么办?这里有篇小攻...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 对于Linux云主机,SSH是标配.在实际操作过程中有时会出现无法远程登录的情况,这里简单介绍了SSH无法登录的可能原因及排查方法,帮助大家用以自测. - ...

  4. 【YM】ssh命令 远程登录Linux

    [YM]ssh命令 远程登录Linux spfanlost 2017.10.08 14:51:24 字数 646 阅读 1,008 菜鸟学Linux命令:ssh命令 远程登录 如何通过ssh远程登录l ...

  5. linux的SSH(远程登录)服务

    目录 一.SSH服务 1.什么是SSH 2.SSH(Secure Shell)协议 3.OpenSSH服务器配置文件 二.ssh远程登录方式 2.使用域名进程登录 3.故障解决 4.sshd服务支持的 ...

  6. 使用SSH客户端远程登录Linux主机(可替代samba、ftp服务)

    使用SSH客户端远程登录Linux主机(可替代samba.ftp服务) Linux系统起初就是为多用户而产生的,可以允许多个用户同时登录linux主机各自进行操作,如图1所示:   图1 SSH(Se ...

  7. 使用Telnet与ssh协议远程登录linux系统

    一.计算机的登录 计算机终端设备通过输入用户账户标识和与之对应的口令的方式被计算机验证的过程. 终端的分类: 1)物理终端:计算机本身的控制台设备:通常将其标识为"pty",在现代 ...

  8. linux配置ssh密码远程登录,配置ssh 无需密码即可登录远程服务器

    在平时工作或者开发自己的项目时,经常需要登录部署了项目代码的服务器来做一些调试,配置等相关的操作,像sftp.rsync之类的工具也是基于ssh通道来工作的.但是经常输密码登录服务器又会让人觉得很烦, ...

  9. 菜鸟学Linux命令:ssh命令 远程登录

    1.查看SSH客户端版本 有的时候需要确认一下SSH客户端及其相应的版本号.使用ssh -V命令可以得到版本号.需要注意的是,Linux一般自带的是OpenSSH: 下面的例子即表明该系统正在使用Op ...

最新文章

  1. 【前端】递归之引起堆栈溢出解决方案
  2. 性能测试——房屋租赁系统(Badboy、JMeter)
  3. DevExpress 选择框如何进行模糊查询
  4. 性能php 教程,提高PHP性能效率的几个技巧
  5. java获取插入数据库表中的自增列值的一个简单方法
  6. java excel 插件开发工具_程序员常用的15 种开发者工具推荐
  7. 服务器无法继续该事务 3400000006 错误原因--JAVA调用SQLSERVER存储过程时过程发生异常内部事务未
  8. 法国spin高等计算机学校,spin-去展网
  9. Java的数据结构有那些?
  10. Vue.js实际开发案例(不断整理中...)
  11. Iphone5的机身4S的配置 山寨版“iPhone 5S”上手视频
  12. Uniswap进化之路
  13. 自学机器学习,怎么才能找到工作啊?至少要避开十大雷区
  14. 在Linux Mint 19.2 XFCE(x64)中安装Canon LBP2900+打印机驱动程序
  15. Android Camera2 对焦梳理
  16. java实现 xls转xlsx
  17. html带复选框的表格,Html 表格行 ID 复选框
  18. 设计美好的服务器(6)--SEDA架构笔记
  19. 常见的树形结构(一)
  20. 广告商、影视剧和晚会用的流行歌曲,版权都是怎么买的?

热门文章

  1. python修改pip源脚本_修改python的pip源为国内源
  2. google lab 深度学习_吴恩达、李飞飞等化身超级英雄!深度学习漫画第一卷现已开源...
  3. Linux集中日志服务器rsyslog(亲测)
  4. Oracle修改实例名SID
  5. Linux系统中各种系统日志文件主要存放在系统中哪个目录
  6. TeamViewer运行在Windows Server 2008下连接时错误提示:正在初始化显示参数
  7. 原来你是这样的JAVA[01]-基础一瞥
  8. Exchange Server 2013 OWA IIS重定向
  9. 单元测试的四大具体效益
  10. 【读书笔记】log_archive_dest_n参数描述