基于 Ubuntu22.04 安装 SSH 服务

文章目录

  • 一、Ubuntu22.04 安装 SSH 服务
  • 二、配置 OpenSSH(安全性)
    • 1. 更改 OpenSSH 端口
    • 2. 限制使用 SSH 登录尝试次数
    • 3. 禁止 SSH 以 root 身份连接
  • 三、设置防火墙(UFW)锁定 SSH
  • 四、远程终端软件通过 SSH 连接 Ubuntu22.04
    • 1. 远程终端软件连接 Ubuntu(以 MobaXterm 为例)
    • 2. CMD 窗口连接 Ubuntu
    • 3. VS Code 连接 Ubuntu
  • 五、Ubuntu22.04 的 SSH 故障排查

在这里插入图片描述

安全外壳协议(Secure Shell,简称 SSH)是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议。

SSH 由 IETF 的网络小组(Network Working Group)所制定,SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH 最初是 UNIX 系统上的一个程序,后来又迅速扩展到其他操作平台。SSH 在正确使用时可弥补网络中的漏洞。SSH 客户端适用于多种平台。几乎所有UNIX平台—包括 HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行 SSH。

——引用:安全外壳协议_百度百科

在这里插入图片描述

本教程的前置条件是,在 Windows 系统的宿主机上以搭建好了 Ubuntu22.04 的虚拟机,关于 Ubuntu22.04 虚拟机的搭建可以参考《基于 VMware 虚拟机的 Ubuntu22.04 系统安装和配置(新手保姆级教程)》。

一、Ubuntu22.04 安装 SSH 服务

安装 SSH 服务之前,最好先更新一下 Ubuntu 系统的软件包列表:

sudo apt update 

输入并运行下列命令,即可安装 OpenSSH:

sudo apt install openssh-server -y

安装好 SSH 后,可以输入 ssh -V 命令,检查 OpenSSH 服务器的版本,结果如下图所示:

在这里插入图片描述

二、配置 OpenSSH(安全性)

[!CAUTION]

此章节作为对 SSH 的额外了解,SSH 在安装后的默认配置适合大多数用户,如有必要配置,可以编辑 /etc/ssh/sshd_config 文件以调整。

OpenSSH 默认使用安全加密和身份验证,可以通过采取以下配置来进一步增强安全性。

1. 更改 OpenSSH 端口

更改默认的 OpenSSH 端口是防止未经授权访问我们的 Ubuntu 的有效方法,可以编辑 /etc/ssh/sshd_config 配置文件进行更改。

使用超级用户权限(sudo)打开 SSH 配置文件:

sudo vim /etc/ssh/sshd_config

原先的 /etc/ssh/sshd_config 配置文件,有很多代码都是被注释掉的,在这些注释中找到并取消注释 Port 此行。删除 # 符号并更改端口号(默认情况下是 22)。例如,将端口更改为 2222:

Port 2222

如下如所示:

在这里插入图片描述

保存文件并退出编辑器,输入下列命令重新启动 SSH 服务以使更改生效:

sudo systemctl restart ssh

需要注意的是,在更改端口后,要确保防火墙允许该端口的流量通过。

2. 限制使用 SSH 登录尝试次数

要在 Ubuntu 上使用 SSH 限制登录尝试,同样是编辑 /etc/ssh/sshd_config 配置文件进行更改,设置 MaxAuthTries 参数即可,该参数后的数字就是限制用户在一次 SSH 会话中尝试登录的次数。当达到指定的尝试次数后,SSH 服务器将拒绝进一步的登录尝试。

找到 MaxAuthTries 行,默认情况下被注释掉的,前面有一个 # 符号。取消注释并设置一个适当的尝试次数,如下图所示,设置为 3:

在这里插入图片描述

保存文件并退出编辑器,同样需要重新启动 SSH 服务才能生效。

现在 SSH 服务器将限制用户在一次会话中尝试登录的次数。超过指定的尝试次数后,用户将不再能够进行登录尝试,直到新的 SSH 会话开始。这可以增加服务器的安全性,防止暴力破解攻击。

3. 禁止 SSH 以 root 身份连接

禁止 SSH 以 root 身份连接是一种常见的安全实践,因为它可以减少潜在的风险。同样是编辑 /etc/ssh/sshd_config 配置文件进行更改,找到 PermitRootLogin 行,取消注释并将其设置为 no

在这里插入图片描述

保存文件并退出编辑器,同样需要重新启动 SSH 服务才能生效。

现在,SSH 将不再允许直接使用 root 用户登录。相反,我们自己也只能使用一个普通用户登录,然后在需要时 root 权限时通过 sudo 命令来获取 root 权限。这种做法有助于提高系统的安全性,因为它会减少直接攻击 root 用户账户的风险。

三、设置防火墙(UFW)锁定 SSH

确保防火墙允许新端口的流量通过非常重要,否则 SSH 连接将无法成功。在 Ubuntu 中,可以使用 ufw(Uncomplicated Firewall)来管理防火墙规则。

使用以下命令允许新端口的流量通过防火墙:

sudo ufw allow <new port>/tcp

例如,刚刚将端口更改为 2222,则应该运行:

sudo ufw allow 2222/tcp

然后启用防火墙:

sudo ufw enable

如果效果和下图所示一样,那么防火墙已经配置为允许通过新的 SSH 端口的流量,可以通过新的端口连接到 SSH 服务器。

在这里插入图片描述

四、远程终端软件通过 SSH 连接 Ubuntu22.04

1. 远程终端软件连接 Ubuntu(以 MobaXterm 为例)

这里以 MobaXterm 为例,以 SSH 的方式连接,以次输入 IP 地址、用户名和端口号(默认 22,改了就输入新的)。

在这里插入图片描述

然后输入密码回车即可(密码不显示,纯盲打)。

在这里插入图片描述

登录正常的话,就是下图所示的界面了。

在这里插入图片描述

2. CMD 窗口连接 Ubuntu

如果没有安装 MobaXterm 等终端软件,可以用 Windows 的 OpenSSH 客户端。在 Windows 10 上,可以通过设置应用中的 “应用和功能” 菜单找到 “可选功能”,然后启用 “OpenSSH 客户端” 功能。在 Windows 11 上,默认情况下 OpenSSH 客户端已经预安装,无需再进行额外的安装。

按组合键 Win + r 打开运行窗口,使用 ssh 命令连接到远程服务器,以下是命令的格式:

ssh username@remote_host
ssh -p port_number username@remote_host

第一行是默认端口为 22 的连接命令,第二行是自定义端口号,port_number 为端口号,username 为用户名,remote_host 为 IP 地址。下面的例子是 SSH 连接我的 Ubuntu 主机的命令:

ssh -p 2222 grayson@192.168.31.90

输入到运行命令框中:

在这里插入图片描述

第一次要先输入 “yes” 回车,再输入密码回车(之后只要输入密码就行),如下图:

在这里插入图片描述

3. VS Code 连接 Ubuntu

请参考博客《VS Code 远程连接 SSH 服务器》。

五、Ubuntu22.04 的 SSH 故障排查

通过 SSH 连接 Ubuntu 系统时,最常见的 SSH 服务故障问题就是连接失败,可以按照以下步骤进行故障排查:

  1. 确认 SSH 服务是否运行

    使用以下命令检查 SSH 服务是否正在运行:

    sudo systemctl status ssh
    

    如果 SSH 服务正在运行,应该会看到类似于 “active (running)” 的消息。如果服务未运行,您可以尝试启动它:

    sudo systemctl start ssh
    

    如图所示:

在这里插入图片描述

  1. 检查 SSH 配置文件

    确保 SSH 配置文件 /etc/ssh/sshd_config 中的设置正确。特别关注 PortPermitRootLoginMaxAuthTries 等参数是否设置为预期值。

    在这里插入图片描述

  2. 检查防火墙设置

    如果更改了 SSH 端口,要确保防火墙允许新端口的流量通过,可以使用以下命令查看当前允许的端口:

    sudo ufw status
    

    如下图所示,我允许的端口号为 2222,可以使用 ufwiptables 命令来配置防火墙规则。

    在这里插入图片描述

  3. 查看系统日志

    检查系统日志以查找与 SSH 相关的任何错误消息。系统日志通常存储在 /var/log 目录下,可以查看 /var/log/auth.log/var/log/syslog 文件。

  4. 检查 SSH 配置的完整性

    检查 SSH 配置文件的语法是否正确,可以使用 sshd 命令的 -t 选项来测试配置文件的语法是否正确:

    sudo sshd -t
    

    如果输入命令后,没有显示任何信息,则表示配置正确。

  5. 查看网络连接

    确保您的服务器网络连接正常。您可以使用 ping 命令来测试网络连接:

    ping -c 4 <server_ip>
    

如果仍然无法解决问题,可以尝试查看更详细的日志信息,或者尝试在互联网上搜索相关的错误消息以获取更多帮助。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringMVC简介和体验

一、SpringMVC简介和体验 1.1 介绍 Spring Web MVC :: Spring Framework Spring Web MVC是基于Servlet API构建的原始Web框架&#xff0c;从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称&#xff08; spring-webmvc &#xff09;&#…

算法学习007-进制转换 c++递归算法实现 中小学算法思维学习 信奥算法解析

目录 C进制转换 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、推荐资料 C进制转换 一、题目要求 1、编程实现 小明学c有一段时间了&#xff0c;今天他想做一个进制转换的小程序&#xff0c;将十进…

LEETCODE LCR 041. 数据流中的移动平均值

class MovingAverage:def __init__(self, size: int):"""Initialize your data structure here."""self.sizesize1self.front0self.rear0self.queue[None for _ in range(size1)]self.sum0def next(self, val: int) -> float:# 满了if (self.…

flutter 生成单选组件

一、效果图 二、主要代码 import package:company_manage_flutter/xcClass/dicDataProp.dart; import package:flutter/material.dart; import package:get/get.dart;class CheckListWidget extends StatefulWidget {final List<Map<String, dynamic>> list;final…

Vue中Element的下载

打开vscode让项目在终端中打开 输入npm install element-ui2.15.3 然后进行下载 在node_modules中出现element-ui表示下载完成 然后在输入Vue.use(ElementUI); import Vue from vue import App from ./App.vue import router from ./router import ElementUI from element-ui…

【目标检测】Deformable DETR

一、前言 论文&#xff1a; Deformable DETR: Deformable Transformers for End-to-End Object Detection 作者&#xff1a; SenseTime Research 代码&#xff1a; Deformable DETR 特点&#xff1a; 提出多尺度可变形注意力 (Multi-scale Deformable Attention) 解决DETR收敛…

已解决 RuntimeError: No CUDA GPUs are available 亲测有效!!!

已解决 RuntimeError: No CUDA GPUs are available 亲测有效&#xff01;&#xff01;&#xff01; 亲测有效 报错问题解决思路解决方法 报错问题 RuntimeError: No CUDA GPUs are available 这个错误通常发生在尝试在没有CUDA支持的GPU或没有安装NVIDIA GPU的机器上运行基于C…

Hamilton回路求解

如果可以 我想和你回到那天相遇 让时间停止 那一场雨 红线划过 深藏轮回的秘密 我挥霍运气 因为你 才让我 背对命运不害怕 --------- 如果可以 (Acapella) - 韦礼安 大家好&#xff0c;我又又又来了&#xff0c;今天给大家聊聊Hamilton回路&#xff01; 背景 国际象…

使用CUDA的PyTorch进行张量重整化的gpu加速

使用CUDA的PyTorch进行张量重整化的gpu加速 摘要IntroductionAlgorithm and TorchTrg discussionModels and Results GPU-Acceleration of Tensor Renormalization with PyTorch using CUDA 摘要 作者展示了基于张量重整化群&#xff08;TRG&#xff09;方法的数值计算可以通过…

HarmonyOS NEXT星河版之在线考试功能实战

文章目录 一、目标二、基础搭建2.1 定义数据2.2 mock数据2.3 主页面布局2.3.1 布局规划2.3.2 标题栏2.3.3 进度条2.3.4 答题模块2.3.5 底部按钮 2.4 主页面逻辑2.4.1 加载数据及定义变量2.4.2 上一题、下一题 三、选项点击及高亮3.1 声明对象及变量3.2 给选项注册点击事件3.3 处…

AI图书推荐:Zapier和AI融合来自动化业务流程

这本书《Zapier和AI融合来自动化业务流程》&#xff08;Automate It with Zapier and Generative AI&#xff09;由Kelly Goss撰写&#xff0c;这本书是为想要使用Zapier和AI集成功能来自动化重复性任务、提高生产力的微型、小型或中型企业的业务所有者、运营经理和团队准备的。…

C++入门基础(四)

目录 auto关键字(C11)类型别名思考auto的使用细则auto与指针和引用结合起来使用在同一行定义多个变量 auto不能推导的场景auto不能作为函数的参数auto不能直接用来声明数组 复杂场景下的auto 基于范围的for循环(C11)范围for的语法范围for的使用条件 指针空值---nullptr(C11)C98…

电商核心技术揭秘四十九:智能广告投放与效果评估

相关系列文章 电商技术揭秘相关系列文章合集&#xff08;1&#xff09; 电商技术揭秘相关系列文章合集&#xff08;2&#xff09; 电商技术揭秘相关系列文章合集&#xff08;3&#xff09; 电商技术揭秘四十一&#xff1a;电商平台的营销系统浅析 电商技术揭秘四十二&#…

饥荒服务器搭建centos

服务器环境需要64位32位不可用 uname -r 查看服务器版本 更新yum sudo yum update 安装依赖环境 sudo yum -y install glibc.i686 libstdc.i686 libcurl4-gnutls-dev.i686 libcurl.i686 screen 安装steam cd /home && mkdir steamcmd && cd steamcmd 国…

【typescript测试 - Jest 配置与使用】

安装 npm install --save-dev types/jestnpm install --save-dev ts-jest配置 tsconfig.json {"compilerOptions": {"types": ["jest"]} }jest.config.js module.exports {preset: ts-jest,testEnvironment: node, };使用 // add.js funct…

越权漏洞!

越权漏洞是指在一个系统或应用程序中存在某种不当的访问权限&#xff0c;使得攻击者可以获得比其应该拥有的权限更高的权限。这种漏洞可能允许攻击者执行未经授权的操作&#xff0c;例如访问他人的敏感数据、修改系统设置、执行恶意代码等。越权漏洞通常是由于设计或实现上的错…

HarmonyOS NEXT星河版之模拟图片选择器(下)---使用bindSheet展示图片选择器

文章目录 一、目标二、开撸2.1 bindSheet参数2.2 使用Builder修饰组件2.3 调用bindSheet 三、小结 一、目标 使用bindSheet属性实现图片选择器&#xff0c;如图&#xff1a; 二、开撸 2.1 bindSheet参数 bindSheet接收三个参数&#xff0c;如下&#xff1a; bindSheet(is…

精准读取CSV/Excel数据 - 灵活指定行列范围的 Python 解决方案

文章目录 源代码项目简介导入相关库__file_exists 装饰器函数的签名和注释主要功能的实现运行演示读取 Excel 文件 源代码 https://github.com/ma0513207162/PyPrecip。pyprecip\reading\read_api.py 路径下。 项目简介 PyPrecip 是一个专注于气候数据处理的 Python 库&#xf…

【C++ 关键字】const 关键字详解

文章目录 1. const 概念2.常量指针 和 指针常量 的区别2.1 常量指针&#xff08;底层 const&#xff09;2.2 指针常量 (顶层 const) 3.const 关键字的作用4.const 和 define 的区别5.const 总结 1. const 概念 const 是一个关键字&#xff0c;被修饰的值不能改变&#xff0c;是…

请求转发和响应重定向

文章目录 一、 概述二、 请求转发三、响应重定向参考资料 一、 概述 什么是请求转发和响应重定向 请求转发和响应重定向是web应用中间接访问项目资源的两种手段,也是Servlet控制页面跳转的两种手段 请求转发通过HttpServletRequest实现,响应重定向通过HttpServletResponse实现…