当前位置:首页 > 文章列表 > 文章 > 常见问题 > SSH连接报错“Connectionrefused”通常意味着目标服务器的SSH服务(sshd)没有运行,或者端口被防火墙阻止。以下是一些可能的原因和解决方法:1.sshd未运行检查sshd状态:在服务器上运行systemctlstatussshd或servicesshdstatus来确认SSH服务是否正在运行。启动sshd:如果服务未运行,可以使用systemctlstartsshd或servi

SSH连接报错“Connectionrefused”通常意味着目标服务器的SSH服务(sshd)没有运行,或者端口被防火墙阻止。以下是一些可能的原因和解决方法:1.sshd未运行检查sshd状态:在服务器上运行systemctlstatussshd或servicesshdstatus来确认SSH服务是否正在运行。启动sshd:如果服务未运行,可以使用systemctlstartsshd或servi

2026-05-11 15:16:09 0浏览 收藏
当SSH连接报出“Connection refused”错误时,并不单纯意味着sshd没运行,而是表明目标主机在TCP连接建立初期(SYN阶段)主动拒绝了请求,背后可能涉及sshd服务未启动、配置错误导致端口未监听、防火墙策略拦截、SELinux/AppArmor安全模块限制,甚至端口绑定失败等多种深层原因;本文系统梳理了从服务状态验证、端口监听确认、防火墙规则检查、配置语法诊断到强制访问控制排查的完整排错路径,帮你精准定位并快速修复这一看似简单却常被误判的连接故障。

SSH连接报Connection refused是sshd没跑吗?

如果您执行 ssh user@host 后收到 ssh: connect to host xxx port 22: Connection refused 错误,该信号表明 TCP 连接在 SYN 阶段即被目标主机内核主动拒绝,而非网络不可达或认证失败。这通常指向 SSH 守护进程未运行、端口未监听或被本地策略拦截。以下是排查与修复该问题的多种路径:

一、验证 sshd/sshd 服务是否处于活动状态

SSH 连接被拒的最常见原因是守护进程根本未启动,systemd 无法拉起 sshd 实例将导致 22 端口完全不响应任何连接请求。

1、执行 sudo systemctl status ssh(Ubuntu/Debian)或 sudo systemctl status sshd(RHEL/CentOS/Fedora)检查服务当前状态。

2、若输出中显示 inactive (dead) 或 failed,说明服务未运行。

3、运行 sudo systemctl start ssh(或 sudo systemctl start sshd)尝试手动启动。

4、启动成功后,立即执行 sudo systemctl enable ssh(或 sudo systemctl enable sshd)确保开机自启。

二、确认 22 端口是否真实监听

即使服务显示 active (running),sshd 也可能因配置错误(如 BindAddress 冲突、HostKey 缺失、ListenAddress 设置为非通配地址)而无法绑定端口,此时 netstat/ss 输出中将查不到 :22 的监听项。

1、运行 sudo ss -tlnp | grep ':22' 查看是否有进程监听 22 端口及对应 PID。

2、若无输出,再执行 sudo systemctl restart ssh(或 sudo systemctl restart sshd),并观察重启日志是否报错。

3、若重启失败,立即查看详细错误:运行 sudo journalctl -u ssh --since "1 hour ago" -n 50 -e(Ubuntu)或 sudo journalctl -u sshd --since "1 hour ago" -n 50 -e(RHEL),重点关注配置文件语法错误、密钥加载失败或 bind 失败提示。

三、检查防火墙是否显式拒绝 22 端口入站流量

系统级防火墙(如 ufw、firewalld)可能配置了默认 deny 策略,且未放行 22/tcp,导致内核在连接建立前直接返回 RST 包,现象与服务未运行完全一致。

1、Ubuntu/Debian 用户运行 sudo ufw status verbose,确认状态为 active 且 22/tcp 在 Incoming 规则中显示为 ALLOW。

2、若未允许,执行 sudo ufw allow 22 并再次检查状态。

3、RHEL/CentOS 用户运行 sudo firewall-cmd --list-all,确认 public zone 中包含 ports: 22/tcp;若缺失,执行 sudo firewall-cmd --permanent --add-port=22/tcp 后 sudo firewall-cmd --reload。

四、排查 SSH 配置文件中的致命错误

sshd_config 中存在语法错误、非法指令或路径错误(如指定不存在的 HostKey 文件、无效的 ListenAddress 值)会导致 sshd 启动时静默失败或启动后立即退出,造成“服务看似运行实则未监听”。

1、运行 sudo sshd -t 对配置文件进行语法校验;若返回非零退出码,说明存在错误。

2、若校验失败,执行 sudo sshd -T 查看实际生效的完整配置(含 include 展开),定位异常项。

3、重点检查第 86 行附近(常见出错位置)、Port、ListenAddress、HostKey、PermitRootLogin 等关键指令是否拼写正确、路径可读、值合法。

4、临时注释可疑行后保存,再执行 sudo systemctl restart ssh 测试是否恢复监听。

五、验证是否因 SELinux 或 AppArmor 强制拦截

在启用强制访问控制的系统中,SELinux(RHEL/CentOS)或 AppArmor(Ubuntu/Debian)策略可能阻止 sshd 绑定网络端口或访问密钥文件,导致服务启动但无法提供服务。

1、RHEL/CentOS 用户运行 sudo sestatus,若 State 为 enabled 且 Current mode 为 enforcing,则需进一步检查。

2、执行 sudo ausearch -m avc -ts recent | grep sshd,若输出 AVC denied 日志,说明 SELinux 拦截。

3、Ubuntu 用户运行 sudo aa-status | grep ssh,若显示 sshd 处于 enforce 模式且有拒绝记录,则需调整 profile 或临时设为 complain 模式测试。

4、临时禁用以验证:RHEL 执行 sudo setenforce 0;Ubuntu 执行 sudo systemctl stop apparmor;随后重启 ssh 服务并测试连接。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于文章的相关知识,也可关注golang学习网公众号。

Midjourney动漫眼眸特写生成技巧Midjourney动漫眼眸特写生成技巧
上一篇
Midjourney动漫眼眸特写生成技巧
HermesAgent集成Notion:API配置与任务同步
下一篇
HermesAgent集成Notion:API配置与任务同步
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • PubMedQA数据集详解:生物医学问答基准、功能与应用指南
    PubMedQA
    深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
    287次使用
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    340次使用
  • LMArena是什么?伯克利AI模型评估平台使用指南与功能解析
    LMArena
    LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
    342次使用
  • 斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解
    HELM
    深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
    306次使用
  • MMBench详解:多模态大模型基准测试、功能特点与使用指南
    MMBench
    MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
    129次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议 和 隐私政策
返回登录
  • 重置密码