捷讯技术分享SSH 无法远程登录问题的处理办法汇总
前面小编给大家分享过云服务器和虚拟主机的区别,那么我们就会发现虚拟主机是不支持远程登录的。所以购买云服务器 ECS(后续简称 ECS)Linux 服务器后,就会面临如何登录和使用的问题。而由于服务器在云端,所以日常运维中通常都会基于 SSH 客户端登录服务器进行相关操作。今天,阿里云湖北授权服务中心捷讯技术小编就从登录 ECS 的不同方法和使用场景讲起,理理SSH 无法远程登录问题的常见原因与排查思路。
ECS Linux 不同登录方式示意图.png
ECS Linux 不同登录方式示意图
如上图所示,当前 ECS Linux 支持 3 种不同的登录方式,其操作说明与使用场景如下:
1.管理终端(远程连接)
使用场景:当出现 ECS 启动异常、网络中断或 SSH 无法正常连接等情况时,可以通过管理终端(远程连接)功能直接连接服务器。它基于 VNC 技术,相当于在 ECS 上直连了一台虚拟的显示器(含鼠标、键盘)
2.SSH
使用场景:标准的 Linux 服务器连接方式。您可以通过各种 Linux SSH 客户端连接、登录 ECS,进行服务器的运维和管理工作。
3.SSH 密钥对
使用场景:基于密钥对的免密码登录,降低了密码泄露的风险,提高了操作的安全性,同时也便于服务器的批量运维。
一、SSH 无法远程登录问题的常见原因与处理思路
如前所述,SSH 客户端是 ECS Linux 服务器的主要的运维途径。而网络、服务器配置、SSH 服务配置等多种因素均可能会导致 SSH 连接或登录过程出现异常。那么我们先来了解影响 SSH 连接或登录的常见因素以及此类问题的分析处理思路。
1、SSH 连接登录相关因素
如上图所示,多种因素均可能会导致客户端通过 SSH 连接或登录服务器出现异常,包括但不限于:
1)客户端软件或软件配置问题;
2)客户端网络问题;
3)中间链路问题;
4)云盾、ECS 安全组或系统内 iptables 等安全配置问题;
5)Linux 系统 PAM 安全模块配置问题;
6)Linux 系统环境配置问题;
7)SSH 服务及参数配置问题;
8)SSH 服务关联的目录或文件的属性配置问题;
9)SSH 服务密钥配置问题。
2、SSH 无法远程登录问题处理思路
如果 SSH 无法正常连接或登录,可以参照下图,通过如下步骤逐一进行排查分析:
2.1 检查客户端软件配置与网络配置
通过以下方法做对比分析,以判断是否是客户端软件、软件配置或客户端网络存在异常,导致无法正常 SSH 连接或登录服务器:
a、重启家用路由器,或通过 4G 热点共享的方式,切换到不同的网络做对比测
b、基于相同账户,使用不同的 SSH 客户端软件做对比访问测试
2.2检查中间网络
通过如下方法对中间网络做判断和对比分析,以判断是否是中间网络引发的异常:
a、ping服务器 IP ,看是否正常。比如:ping 223.5.5.5
如果正常,则说明客户端到服务端的中间链路是正常的。
如果不正常,需要对这块进行再另外进行分析
b、telnet服务器 IP,看是否正常。比如: telnet 223.5.5.5 22
正常情况下,如下图所示,会返回服务端 SSH 软件版本号信息:
如果不正常,则说明可能是 SSH 服务异常或被云盾、安全组等拦截所致,则参阅后续步骤继续排查分析。
2.3 安全配置检查
通过如下方法,对 SSH 连接相关安全因素进行排查分析:
通过淘宝 IP 地址库等网站获取本地网络出口公网 IP 后,到云盾控制台查询相关访问是否被云盾拦截。
检查服务器归属安全组规则,确认对客户端做了访问放行。
检查服务器内部 iptables 等安全配置,确认对客户端做了访问放行。
2.4 SSH 服务与监听状态检查
通过如下方法,检查 SSH 服务自身运行状态:
可以通过管理终端进入服务器。通过如下指令检查 SSH 服务运行状态。如果服务运行正常,则会返回运行状态及相应进程 PID:
[root@centos ~]# service sshd status openssh-daemon (pid 31350) is running…
[root@centos ~]# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
通过如下指令检查 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登录
在系统内通过类似 ssh 127.0.0.1 的方式做对比测试,以判断 SSH 服务连接是否正常:
用法: ssh -p
ssh 127.0.0.1 ssh -p 2022 127.0.0.1
如果上述登录测试正常,则说明 SSH 服务本身运行与监听是正常的。则通过后续步骤做进一步排查分析。
2.5 SSH 登录错误进一步分析
如果确认 SSH 服务及外部网络链路正常,则可以通过如下方法,进一步检查 SSH 登录具体错误信息,然后结合历史案例做相应分析和处理:
配置实时查看 SSH 服务端安全日志:通过管理终端进入服务器。通过类似如下指令实时查看 SSH 服务端安全日志:
CentOS 服务器:tailf /var/log/secure Ubuntu 服务器:tailf /var/log/auth开启客户端 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 ...
参阅历史案例,结合前述步骤获取的 SSH 客户端及服务端的日志进行对比分析和处理。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
初学docker(win10)
初次安装后,首先更换docker镜像地址,打开daemon.json,配置: win10配置文件路径,~/docker/daemon.json { "registry-mirrors": ["https://registry.docker-cn.com"] } 1 登陆出错 win10系统 解决办法:打开防火墙 2 查看所有镜像 docker image ls docker images 3 查看所有容器 docker container ls -all 4 镜像与容器的关系 镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 5 删除镜像和容器 docker rmi <镜像名|镜像ID> rm <容器名|容器ID> docker rm `docker ps -aq` # 删除所有容器 6 启动与暂停容器 docker start <容器名|容器ID> docker stop <容器名|容器ID> 7 查...
- 下一篇
最佳实践系列丨Docker EE 服务发现参考架构(三)
出品丨Docker公司(ID:docker-cn)编译丨小东每周一、三、五晚6点10分 与您不见不散 服务发现对服务进行注册并发布其连接信息,以使其他服务了解如何连接到服务。随着应用向微服务和面向服务的架构转变,服务发现已经成为所有分布式系统的必要组成部分,增加了这些环境的运维复杂性。点击以下标题,回顾第一部分内容: 最佳实践系列丨Docker EE 服务发现参考架构(一) 最佳实践系列丨Docker EE 服务发现参考架构(二) HRM 用法 现在您已经了解了 HRM 的工作原理和与它相关的要求,本部分将介绍用于 HTTP 路由、日志记录、监控和从节点的 HRM 语法。 HTTP 路由 服务必须包含一个标记,其标记键以 com.docker.ucp.mesh.http 开头。如果服务需要公开多个端口,那么可以使用多个标记,例如,com.docker.ucp.mesh.http.80 和 com.docker.ucp.mesh.http.443。80 和 443 用来通过端口号区别 HRM 标记。您可以使用任何值,只要确保它们彼此不同并且您可以跟踪它们即可。 连接到 HRM 使用的服务...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- 设置Eclipse缩进为4个空格,增强代码规范
- Mario游戏-低调大师作品
- MySQL8.0.19开启GTID主从同步CentOS8
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16