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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 前面小编给大家分享过云服务器和虚拟主机的区别,那么我们就会发现虚拟主机是不支持远程登录的。所以购买云服务器 ECS(后续简称 ECS)Linux 服务器后,就会面临如何登录和使用的问题。而由于服务器在云端,所以日常运维中通常都会基于 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 软件版本号信息:

linux

如果不正常,则说明可能是 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 客户端及服务端的日志进行对比分析和处理。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
JavaScript 应用服务中间件 Linux
【应用服务 App Service】解决无法从Azure门户SSH登录问题
【应用服务 App Service】解决无法从Azure门户SSH登录问题
|
4月前
|
分布式计算 Hadoop 网络安全
杨校老师课堂之集群内SSH免密登录功能配置
杨校老师课堂之集群内SSH免密登录功能配置
38 0
|
2月前
|
机器学习/深度学习 存储 Linux
【机器学习 Azure Machine Learning】使用VS Code登录到Linux VM上 (Remote-SSH), 及可直接通过VS Code编辑VM中的文件
【机器学习 Azure Machine Learning】使用VS Code登录到Linux VM上 (Remote-SSH), 及可直接通过VS Code编辑VM中的文件
|
2月前
|
安全 Shell Linux
如何禁止某个用户使用ssh登录
本文介绍了五种禁止用户通过SSH登录的方法:1) 修改`/etc/ssh/sshd_config`文件中的`DenyUsers`和`DenyGroups`来阻止特定用户或用户组登录;2) 将用户的默认shell设置为`/usr/sbin/nologin`或`/bin/false`以禁用其SSH访问;3) 利用PAM(可插入认证模块)通过编辑`/etc/security/sshd.conf`来限制登录权限;4) 通过编辑`/etc/hosts.deny`文件拒绝特定用户的SSH访问;5) 锁定或禁用用户账号以阻止所有类型的登录。每种方法都提供了详细的步骤指导。
84 1
|
2月前
|
存储 安全 测试技术
【超实用却暗藏杀机】sshpass:一键免密SSH登录的神器,为何生产环境却要敬而远之?探秘背后的安全隐患与替代方案!
【8月更文挑战第16天】sshpass 是一款便捷工具,可实现自动化SSH登录,简化脚本中的远程连接流程。通过后台自动处理密码输入,便于执行远程操作,如 `sshpass -p &#39;yourpassword&#39; ssh user@remotehost`。也可结合更多SSH选项使用,例如指定私钥文件。然而,因需明文传递密码,存在较大安全隐患,不适于生产环境;推荐使用公钥认证以增强安全性。
50 4
|
2月前
|
安全 Linux Shell
Linux系统之间实现免密码登录(SSH无密码登录
【8月更文挑战第21天】要在Linux系统间实现SSH免密码登录,需先在源机器生成SSH密钥对,然后将公钥复制到目标机器的`.ssh/authorized_keys`文件中。可通过`ssh-keygen`命令生成密钥,并使用`ssh-copy-id`命令传输公钥。最后测试SSH连接,确保能无密码登录。若目标机器缺少相关目录或文件,需手动创建并设置适当权限。完成这些步骤后,即可实现安全便捷的免密码登录。
54 0
|
2月前
|
Ubuntu Linux 网络安全
在Linux中,如何禁用root用户直接SSH登录?
在Linux中,如何禁用root用户直接SSH登录?
|
3月前
|
安全 Linux 网络安全
|
3月前
|
Shell 网络安全 数据安全/隐私保护
MacOS Sonoma14.2.1系统SSH免密登录
【7月更文挑战第9天】在MacOS Sonoma 14.2.1中设置SSH免密登录,包括:1) 使用`ssh-keygen`生成RSA密钥对;2) 使用`ssh-copy-id`将公钥传到远程主机;3) 用`ssh-add --apple-use-keychain`添加私钥到ssh-agent,并为重启后自动添加配置自动化脚本;4) 可选地,编辑`~/.ssh/config`设置别名简化登录。确保远程主机的`.ssh/authorized_keys`文件权限为600。
122 4
|
2月前
|
存储 安全 Linux
说到Linux安全,SSH限制IP登录绕不开这3种方法!
说到Linux安全,SSH限制IP登录绕不开这3种方法!