SSH连接失败排查与解决教程: Connection refused

前言

当使用云服务器(如阿里云、腾讯云、AWS 等)时,尝试在本地PC端使用图形化工具如 FinalShell、XShell可能会遇到 SSH 连接失败的问题。本文列举 SSH 连接失败的常见原因,并提供对应解决方案,帮助快速定位并解决问题。


一、问题现象

  • 使用 FinalShell、XShell等工具连接云服务器失败
  • 报错信息如:
    • Permission denied (publickey,password)
    • Can't connect to SOCKS proxy: Connection refused
    • Connection refused
    • No route to host
  • 云服务器已配置安全组放行 22 端口,但仍然无法连接

二、排查流程

1. 检查云服务器安全组是否放行 22 端口↓
2. 检查服务器 SSH 服务是否运行正常↓
3. 在本地终端使用 SSH 命令测试连接↓
4. 信任服务器指纹(known_hosts)↓
5. 再次使用图形工具连接

三、详细排查步骤

✅ 步骤 1:确认云服务器安全组是否放行 22 端口

为什么重要?

云服务器默认不会开放所有端口,你需要手动配置安全组规则,允许外部访问 SSH 端口(默认是 22)。

如何操作(以阿里云为例):
  1. 登录阿里云控制台
  2. 找到你的轻量应用服务器或 ECS 实例
  3. 进入“防火墙”或“安全组”页面
  4. 添加入站规则:
    • 协议类型:TCP
    • 端口范围:22
    • 授权对象(源IP):0.0.0.0/0(允许所有IP)或你本地的公网IP

✅ 步骤 2:确认服务器上的 SSH 服务是否运行

为什么重要?

即使你放行了 22 端口,如果服务器上的 SSH 服务没启动,也无法连接。

如何操作:
  1. 使用阿里云控制台提供的“远程连接”(如Workbench)登录服务器
  2. 执行命令查看 SSH 状态:
sudo systemctl status sshd
# 或
sudo service ssh status
  1. 如果未运行,启动 SSH 服务:
sudo systemctl start sshd
sudo systemctl enable sshd

✅ 步骤 3:在本地终端使用 SSH 命令测试连接

为什么重要?

图形化工具(如 FinalShell)可能会隐藏底层的 SSH 交互细节,使用命令行可以更清晰地看到报错信息。

操作命令:
ssh username@your_server_ip

例如:

ssh root@139.155.88.173
可能提示:
The authenticity of host '139.155.88.173 (139.155.88.173)' can't be established.
***** key fingerprint is ******:...
Are you sure you want to continue connecting (yes/no/[fingerprint])?

这是 SSH 的主机指纹验证机制,防止中间人攻击。

解决方法:

输入:

yes

系统会将服务器的指纹记录到本地:

~/.ssh/known_hosts

此时,服务器的指纹已被信任。


✅ 步骤 4:再次使用图形工具连接(如 FinalShell)

为什么现在可以连接了?

因为:

  • 命令行工具将服务器指纹写入了 ~/.ssh/known_hosts
  • FinalShell、Xshell 等图形工具默认使用系统 SSH 配置和密钥
  • 所以现在它“知道”这个服务器是可信的,就可以正常连接了

四、常见问题补充

❓1. 为什么信任指纹后 FinalShell 就可以连接了?

FinalShell 等工具默认不会自动信任新服务器的公钥指纹,所以首次连接时会失败。但当你通过命令行信任了服务器后,FinalShell 会读取 .ssh/known_hosts 文件,发现该服务器已被信任,于是连接成功。


❓2. 如果服务器更换了 IP 或重装系统怎么办?

SSH 会检测到指纹不一致,提示如下:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

这说明服务器的 SSH 主机密钥已变更,可能是:

  • 服务器重装系统
  • 服务器更换了主机密钥
  • 中间人攻击(极少见)
解决办法:

手动删除 .ssh/known_hosts 中对应的服务器记录:

ssh-keygen -R 139.155.88.173

然后再重新连接即可。


❓3. 如何查看 .ssh/known_hosts 文件?

cat ~/.ssh/known_hosts

每行代表一个已信任的服务器指纹。


✅ 五、总结:SSH 连接失败排查清单

检查项是否完成说明
云服务器安全组是否放行 22 端口阿里云、腾讯云等需手动配置
服务器 SSH 服务是否运行通过 远程连接 登录检查
本地终端是否信任服务器指纹使用 ssh 命令并输入 yes
图形工具是否读取 .ssh/known_hostsFinalShell 等默认使用系统配置
用户名和密码是否正确Linux 区分大小写,注意默认用户
是否配置了错误的代理FinalShell 可能启用了 SOCKS 代理

📌 六、附录:常用命令汇总

# 测试端口是否通
telnet 139.155.88.173 22
nc -zv 139.155.88.173 22# SSH 连接服务器
ssh username@139.155.88.173# 查看 known_hosts 文件
cat ~/.ssh/known_hosts

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/90745.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/90745.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

性能优化:Vue 3 `v-memo` 指令详解

v-memo 是 Vue 3 提供的一个性能优化工具,能帮助开发者缓存模板内容,减少不必要的渲染开销。本文将介绍 v-memo 的引入版本、作用、使用方法和实现原理,并通过示例说明如何使用它。内容基于 Vue 3.5.18(截至 2025 年 7 月的最新版…

标准库开发和寄存器开发的区别

1.标准库void GPIO_Toggle_INIT(void)//初始化GPIO {GPIO_InitTypeDef GPIO_InitStructure {0};//定义GPIO结构体RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//使能GPIO时钟GPIO_InitStructure.GPIO_Pin GPIO_Pin_2;//GPIO引脚选择GPIO_InitStructure.GPIO_Mode …

在 WebSocket 中使用 @Autowired 时遇到空指针异常

背景:在websocket在有新的连接加入进来时,调用servier中的服务,使用 Autowired 注入的 Bean 竟然是 null!这并非 Spring 的 Bug,而是对 WebSocket 生命周期管理理解不足导致的。了解这个问题,我们需要区分两…

MGER实验

一、实验拓扑图二、配置1.R5为ISP,只能进行IP地址配置,其所有地址均配为公有IP地址R1侧为15.1.1.1,对应R5为15.1.1.2R2侧为25.1.1.2,对应R5为25.1.1.1R3侧为35.1.1.2,对应R5为35.1.1.1R4侧为45.1.1.2,对应R…

基于 XGBoost 与 SHAP 的医疗自动化办公与可视化系统(下)

— 登录接口 — @app.post(“/token”) def login(form_data: OAuth2PasswordRequestForm = Depends()): user = fake_users_db.get(form_data.username) if not user or form_data.password != user[“password”]: raise HTTPException(status_code=400, detail=“用户名或密…

python学智能算法(二十九)|SVM-拉格朗日函数求解中-KKT条件

引言 前序学习进程中,对拉格朗日函数执行了初步求导,并获得了简化后的拉格朗日函数极值计算式: L(w,b,α)∑i1mαi−12∑i,j1mαiαjyiyjxiTxjL(w,b,\alpha)\sum_{i1}^{m}\alpha_{i}-\frac{1}{2}\sum_{i,j1}^{m}\alpha_{i}\alpha_{j}y_{i}y_…

【AI论文】MiroMind-M1:通过情境感知多阶段策略优化实现数学推理的开源新进展

摘要:近期,大型语言模型已从流畅的文本生成发展至能在多个领域进行高级推理,由此催生了推理语言模型(RLMs)。在众多领域中,数学推理堪称代表性基准,因为它需要精确的多步骤逻辑与抽象推理能力&a…

《使用Qt Quick从零构建AI螺丝瑕疵检测系统》——6. 传统算法实战:用OpenCV测量螺丝尺寸

目录一、概述1.1 背景介绍:从“看见”到“看懂”1.2 学习目标二、图像预处理:让目标更突出三、轮廓发现与尺寸测量四、总结与展望一、概述 1.1 背景介绍:从“看见”到“看懂” 在上一篇文章中,我们成功地为应用程序安装了“眼睛…

《人性的弱点》重构【01】

手上有本《人性的弱点》(韩文桥 译,浙江文艺出版社,2017.1出版),前些年买的,近期翻出来看看。这门书虽成书于80多年前,但卡耐基对人性洞察之深刻,时至今日,并未觉得过时。…

k8s开启审计日志

k8s默认是关闭审计功能的,想看的话需要到apiserver的pod中才可以。 开启此功能是为了进行k8s审计日志的收集,方便我们查看k8s中用户的各自操作。 开启此功能之前,我们要先创建个审计策略文件audit-policy.yaml 例如以下的测验文件 apiVersion…

Kafka MQ 消费者应用场景

Kafka MQ 消费者应用场景 1 消费者自动提交的时机 在 Kafka 中默认的消费位移的提交方式是自动提交,这个由消费者客户端参数 enable.auto.commit 配置,默认值为 true。当然这个默认的自动提交不是每消费一条消息就提交一次,而是定期提交,这个定期的周期时间由客户端参数 …

Git版本控制系统

Git作为目前最流行的分布式版本控制系统,已经成为开发者必备的技能之一。本文将全面介绍Git的核心概念、基本操作、分支管理以及与GitHub的协作开发,帮助读者从零开始掌握Git的使用。 一、Git概述 1.1 Git发展历史 Git诞生于2005年,由Linu…

如何编译RustDesk(Unbuntu 和Android版本)

编译Linux版本的RustDesk备注:官方文档上,一边都是基于sciter,这个在后面已经不建议使用了,但是依然可以编译刚开始的时候看官方的文档,涉及的东西比较多,也搞的一头雾水,通过B站上一个视频&…

Spring中的循环依赖:解密、破局与架构启示

> 当两个Bean紧紧相拥,Spring容器却陷入死锁——这是Java开发者的经典噩梦 某电商平台凌晨上线时突然宕机,日志里反复滚动着`BeanCurrentlyInCreationException`的报错。经排查,**优惠券服务与库存服务在初始化时相互依赖**,形成致命闭环。这个价值百万的故障案例,揭开…

DataFrame​(数据框)

一种二维表格型数据结构,类似于电子表格(如 Excel)或 SQL 表,由行(记录)​和列(字段)​组成。它是数据分析、机器学习和科学计算中最常用的数据结构之一,尤其在 ​Python…

B站视频评论数据爬取

爬取B站视频评论数据爬取与分析 如果只要单纯的脚本可以直接看项目结构里的b_comments.py 一、技术架构 1、环境配置 Python 3.8PyCharm 2、模块配置 requests:用于发送HTTP请求time:用于处理时间相关的操作csv:用于读写CSV文件json&#xff…

OpenAI最新大模型GPT-4o体验之Code Copilot AI编程大模型

一、前言GPT-4o("o"代表"全能")具备处理各种文本、声音和图像资料的能力,能够输出多种格式的文本、声音和图像。GPT-4o 的推出标志着 AI 技术的重大突破。它不再局限于单一媒介,而是首次实现了文本、语音和图…

社交电商推客系统全栈开发指南:SpringCloud+分润算法+Flutter跨端

一、推客系统概述与市场背景推客系统(TuiKe System)是一种基于社交关系的营销推广平台,通过用户分享商品或服务链接,实现裂变式传播和精准营销。近年来,随着社交电商的蓬勃发展,推客系统已成为企业获客的重…

网安-中间件-Redis未授权访问漏洞

目录 Redis Redis持久化 动态修改配置 使用反弹连接的情况 常见监听端口的方式 常见建立反弹连接的方式 流程 Linux crontab cron文件存储路径 利用Redis实现攻击 1.webshell提权案例 2.定时任务shell反弹案例 3.SSH Key getshell案例 ​编辑Redis其他利用方式 …

【c++深入系列】:万字详解栈和队列和deque(附模拟实现的源码)

🔥 本文专栏:c 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录: 石头能被水滴穿,不是因为水有多强,而是因为它从未停过。 ★★★ 本文前置知识: 模版 栈 那么栈这个…