Ubuntu 22.04.5 安装后无法远程 SSH 连接的排查过程

Ubuntu 22.04.5 安装后无法远程 SSH 连接的排查过程

安装完 Ubuntu 22.04.5 系统后,远程 SSH 连接这台服务器时出现了问题:IP 可以 ping 通,但 SSH 无法连接,有时能连上但很快掉线,表现非常不稳定。

以下是我的排查过程,仅供参考。


1. 检查是否安装 SSH 服务

新安装的 Ubuntu 系统可能没有默认安装 openssh-server,先确认一下:

dpkg -l |grep openssh-server 

如果没有输出,说明 SSH 服务未安装,安装一下:

sudoapt update sudoaptinstall openssh-server -y 

2. 检查 SSH 服务是否启动

安装完成后,确认 SSH 服务是否正在运行:

sudo systemctl status ssh

如果服务未启动,可手动启动:

sudo systemctl start ssh

设置开机自启:

sudo systemctl enablessh

3. 检查防火墙是否阻止了端口 22

Ubuntu 默认启用了 ufw 防火墙,检查其状态:

sudo ufw status 
  • 如果防火墙未开启,不用管。
  • 如果启用了,需要开放 SSH 端口:
sudo ufw allow sshsudo ufw reload 

如果 22 端口被占用,改为其他没有被占用的端口,连接的时候记得修改。这个如果是生产的话,建议修改,安全加固的时候不允许使用默认端口的。


4. 检查 SSH 是否监听正确的 IP 地址

确认 SSH 服务是否正常监听在所有网卡(0.0.0.0)上:

sudonetstat -tlnp |grep :22 

如果只监听 127.0.0.1:22,则远程无法连接,需要修改配置文件 /etc/ssh/sshd_config 中的 ListenAddress


5. 检查是否允许 root 登录和密码认证(root 用户)

默认情况下,Ubuntu 允许 root 用户通过密钥登录,但不允许密码登录。

执行以下命令检查当前配置:

sshd -T |grep permitrootlogin 

输出为:

permitrootlogin prohibit-password 

表示 root 用户 只能通过密钥登录

需要修改配置文件中的下面这个配置(通常在 /etc/ssh/sshd_config.d/ 目录下):

PermitRootLogin yes

修改后重启 SSH 服务:

sudo systemctl restart ssh

6. 使用本机测试 SSH 是否正常工作

在服务器本地执行:

ssh localhost 

如果能成功连接,说明 SSH 服务本身没有问题,问题可能出在网络、端口或远程连接配置上。


7. 检查 IP 是否冲突

网络中可能存在 IP 冲突导致连接不稳定。建议将服务器 IP 改为另一个未被占用的地址,再测试连接,我的就是这个问题。

Read more

《算法闯关指南:优选算法--位运算》--34.判断字符是否唯一,35.丢失的数字

《算法闯关指南:优选算法--位运算》--34.判断字符是否唯一,35.丢失的数字

🔥草莓熊Lotso:个人主页 ❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受! 🎬 博主简介: 文章目录 * 前言: * 位运算基础前置知识 * 34. 判断字符是否唯一 * 解法(位图的思想): * 算法思路: * C++算法代码: * 算法总结&&笔记展示: * 35. 丢失的数字 * 解法(位运算): * 算法思路: * C++算法代码: * 算法总结&&笔记展示: * 结尾: 前言: 聚焦算法题实战,系统讲解三大核心板块:优选算法:剖析动态规划、二分法等高效策略,学会寻找“最优解”。 递归与回溯:掌握问题分解与状态回退,攻克组合、排列等难题。 贪心算法:

By Ne0inhk

PaddleOCR文本矫正与排序算法终极指南:从混乱到有序的完整教程

PaddleOCR文本矫正与排序算法终极指南:从混乱到有序的完整教程 【免费下载链接】PaddleOCRAwesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices) 项目地址: https://gitcode.com/GitHub_Trending/pa/PaddleOCR 在OCR识别过程中,PaddleOCR通过智能的文本矫正技术和高效的排序算法,让歪扭的文字变端正,让混乱的顺序变清晰。本文将为新手用户全面解析PaddleOCR如何实现OCR文本矫正和PaddleOCR排序算法的完美结合。 🎯 为什么需要文本矫正与排序?

By Ne0inhk
LeetCode——滑动窗口(初阶)

LeetCode——滑动窗口(初阶)

文章目录 * 简要介绍 * 相关例题 * 长度最小的子数组 * 题目描述 * 题目分析 * 实现思路💡 * 实现代码 * 无重复字符的最长子串 * 题目描述 * 题目分析 * 实现思路💡 * 实现代码 * [最大连续1的个数 III](https://gitee.com/link?target=https://leetcode.cn/problems/max-consecutive-ones-iii/) * 题目描述 * 题目分析 * 实现思路💡 * 实现代码 * [将 x 减到 0 的最小操作数](https://leetcode.cn/problems/minimum-operations-to-reduce-x-to-zero/) * 题目描述 * 题目描述 * 实现思路💡 * 实现代码 简要介绍 我们的滑动窗口算法是我们在笔试面试以及算法竞赛中都比较常见的一种算法,这个算法

By Ne0inhk
栈和队列--数据结构初阶(2)(C/C++)

栈和队列--数据结构初阶(2)(C/C++)

文章目录 * 前言 * 理论部分 * 栈的模拟实现 * STL中的栈容器 * 队列的模拟实现 * STL中的队列容器 * 作业部分 前言 这期的话会给大家讲解栈和队列的模拟实现和在STL中栈和队列怎么用的一些知识和习题部分(这部分侧重于理论知识,习题倒还是不难) 理论部分 栈的模拟实现 typedef int STDataType; typedef struct Stack { STDataType* a;//这里的a想表示的是数组 int top;//表示数组a当前的容量 int capacity; }ST; void STInit(ST* ps) { assert(ps); ps->a = (STDataType*)malloc(sizeof(STDataType) * 4); if (ps->a == NULL) { perror("

By Ne0inhk