Python之Web开发中级教程----搭建SSH环境

Python之Web开发中级教程----搭建SSH环境

SSH 的全称是 “安全的 Shell(Secure Shell)”,它功能强大、效率高,这个主流的网络协议用于在两个远程终端之间建立连接。让我们不要忘记它名称的“安全”部分,SSH 会加密所有的通信流量,以防止如劫持、窃听等攻击,同时提供不同的身份认证方式和无数个配置选项。

SSH 协议基于客户端-服务器(server-client)(CS)架构。“服务器(Server)”允许“客户端(Client)”通过通信通道进行连接。该信道是经过加密的,信息交换通过 SSH 公私钥进行管理。

在 Ubuntu 系统中,开启 SSH 服务可以让远程用户通过 SSH 安全地访问服务器。下面是开启 SSH 的步骤:

  • 1、安装openssh-server

注意,在安装新的包或者软件前,要更新你的 Ubuntu 系统,以确保运行的是最新版本的程序。

Sudo apt-get update

sudo apt-get install openssh-server

如果SSH服务没有启动,则执行

Sudo service ssh start

禁用SSH服务的命令:sudo systemctl disable

启用SSH服务的命令:sudo systemctl enable

  • 2、检查服务器状态

service ssh status

你还可以使用 systemctl 命令:

sudo systemctl status ssh

如果你的结果中 SSH 服务没有运行,使用这个命令运行它:

sudo systemctl enable --now ssh

3、允许SSH通过防火墙

Ubuntu 带有名为 UFW(简单的防火墙(Uncomplicated Firewall))的防火墙,这是管理网络规则的 iptables 的一个接口。如果启动了防火墙,它可能会阻止你连接服务器。

想要配置 UFW 允许你的接入,你需要运行如下命令:

sudo ufw allow ssh

UFW 的运行状态可以通过运行 sudo ufw status 来检查。

现在,我们的 SSH 服务器已经开始运行了,在等待来自客户端的连接。

注:用命令开启防火墙:sudo ufw enable

    用命令关闭防火墙:sudo ufw disable

用命令重启防火墙:sudo ufw reload

用查看防火墙版本:sudo ufw version

默认允许外部访问本机:sudo ufw default allow

默认拒绝外部访问本机:sudo ufw default deny

允许外部访问53端口:sudo ufw allow 53

查看53端口的监听状态:sudo netstat -tunlp | grep 53

  • 4、Ifconfig 查看IP

telnet 127.0.0.1 22(127.0.0.1是本地地址,22是SSH专属的端口号)

二、SSH远程连接

环境准备:Windows10系统作为本地机器,Ubuntu系统作为远程机器,目的从Windows SSH远程链接Ubuntu系统。

两种方法链接:

第一种、密码认证方式SSH远程连接

缺点:每次连接都需要输入密码。

在Windows中打开cmd.exe

执行结果:

第二种、基于公钥SSH远程连接

原理:在本地机器上生成一对公钥和私钥,然后手动把公钥上传到远程服务器。这样每次登录时,远程主机会向用户发送一段随机字符串,而用户会用自己的私钥对这段随机字符串进行加密,然后把加密后的字符串发送给远程主机,远程主机会用用户的公钥对这段字符串进行解密,如果解密后的字符串和远程主机发送的随机字符串一致,那么就认为用户是合法的,允许登录。

SSH 支持多种用于身份验证密钥的公钥算法, 包括 RSA、DSA、ECDSA 和 ED25519 等,其中 RSA 算法是最常用的,因为它是 SSH 协议的默认算法,所以我们这里以 RSA 算法为例来生成密钥,并配置免密码远程连接。

ssh-keygen 是为 SSH 创建新的身份验证密钥对的工具。此类密钥对用于自动登录、单点登录和验证主机,常用参数定义如下:-t 参数指定密钥类型;-b 参数指定密钥长度

步骤:

1、生成秘钥对

在Windows中打开cmd.exe,执行ssh-keygen -t rsa -C gocntest

  • 2、复制公钥

在Windows中找到保存私钥的路径,将同目录下的公钥拷贝到ubuntu系统中

  • 3、将公钥文件拷贝到ubuntu系统中

我采用将id_rsa.pub文件放在ISO中,加载在虚拟机的CD-ROM中。在Ubuntu系统中读出来的CD-ROM如下图:

  • 4、将公钥中的内容 复制粘贴到.ssh/authorized_keys文件中

在Ubuntu的终端中,执行:cat [拷贝过来的公钥文件]

进入/home/go/.ssh/目录下

执行gedit authorized_keys

  • 4、在windows系统中,远程连接Ubuntu

Ubuntu系统中执行ifconfig查看IP地址

Windows系统中执行远程连接命令:

ssh-keygen命令参数详解

-b BITS

指定密钥长度

-e

读取私有或公共 OpenSSH 密钥文件并以 -m 选项指定的格式之一将密钥打印到标准输出。

-C

添加注释

-f FILENAME

指定用来保存密钥的文件名

-i

以 -m 选项指定的格式读取未加密的私钥(或公钥)文件,并将 OpenSSH 兼容的私钥(或公钥)打印到 stdout。

-l

显示公钥文件的指纹数据

-m KEY_FORMAT

为 -i(导入)或 -e(导出)转换选项指定密钥格式。支持的密钥格式为:“RFC4716”(RFC 4716/SSH2 公钥或私钥)、“PKCS8”(PEM PKCS8 公钥)或“PEM”(PEM 公钥)。 默认转换格式为“RFC4716”。

-N

提供一个新密语

-P PASSPHRASE

提供(旧)密语

-q

静默模式

-t

指定要创建的密钥类型。可能的值为“dsa”、“ecdsa”、“ecdsa-sk”、“ed25519”、“ed25519-sk”或“rsa”。

-y

从 OpenSSH 格式的私钥导出公钥

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

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

相关文章

C语言从入门到精通 第十二章(程序的编译及链接)

写在前面: 本系列专栏主要介绍C语言的相关知识,思路以下面的参考链接教程为主,大部分笔记也出自该教程。除了参考下面的链接教程以外,笔者还参考了其它的一些C语言教材,笔者认为重要的部分大多都会用粗体标注&#xf…

【学习笔记】数据结构与算法06 - 堆:上堆、下堆、Top-K问题以及代码实现

知识来源:https://www.hello-algo.com/chapter_heap/heap/#4 文章目录 2.5 堆2.5.1 堆(优先队列2.5.1.1 堆的常用操作 2.5.2 堆的存储与表示2.5.2.1 访问堆顶元素2.5.2.2 入堆时间复杂度 2.5.2.3 堆顶元素出堆时间复杂度 2.5.3 堆的常见应用2.5.4 建堆问…

每日OJ题_牛客_井字棋

目录 牛客_井字棋 解析代码 牛客_井字棋 井字棋__牛客网 解析代码 class Board {public:bool checkWon(vector<vector<int> > board) {// 当前玩家是否胜出&#xff01;&#xff01;&#xff01;不是有玩家胜出int row board.size(), col board[0].size();fo…

vue 常用的 UI 组件库之一:Vuetify组件库

Vuetify是一个基于Vue.js 的Material Design组件库&#xff0c;它提供了一套完整的、预构建的、可自定义的、响应式的组件&#xff0c;以便开发者可以快速构建美观且功能强大的Web应用程序。Vuetify遵循Material Design设计指南&#xff0c;提供了一系列易于使用的组件&#xf…

【STM32】HAL库 CubeMX教程---基本定时器 定时

目录 一、基本定时器的作用 二、常用型号的TIM时钟频率 三、CubeMX配置 四、编写执行代码 实验目标&#xff1a; 通过CUbeMXHAL&#xff0c;配置TIM6&#xff0c;1s中断一次&#xff0c;闪烁LED。 一、基本定时器的作用 基本定时器&#xff0c;主要用于实现定时和计数功能…

Leetcode : 147. 对链表进行插入排序

给定单个链表的头 head &#xff0c;使用 插入排序 对链表进行排序&#xff0c;并返回 排序后链表的头 。 插入排序 算法的步骤: 插入排序是迭代的&#xff0c;每次只移动一个元素&#xff0c;直到所有元素可以形成一个有序的输出列表。 每次迭代中&#xff0c;插入排序只从输…

【Python学习篇】Python基础入门学习——你好Python(一)

个人名片&#xff1a; &#x1f981;作者简介&#xff1a;学生 &#x1f42f;个人主页&#xff1a;妄北y &#x1f427;个人QQ&#xff1a;2061314755 &#x1f43b;个人邮箱&#xff1a;2061314755qq.com &#x1f989;个人WeChat&#xff1a;Vir2021GKBS &#x1f43c;本文由…

全网最细,web自动化测试实战场景(滚动元素的滚动操作)直接上干g货......

前言 使用 selenium 进行 web 自动化测试对我们来说是个常规操作。用了很多次后&#xff0c;我们经常会抱怨 selenium 封装的操作实在是太少了。 比如说 selenium 没有对页面的滚动提供丰富 API , 有的只有一个孤零零的 location_once_scrolled_into_view 方法&#xff0c;把…

融资项目——OpenFeign的降级与熔断

当一个微服务调用其他微服务时&#xff0c;如果被调用的微服务因各种原因无法在规定时间内提供服务&#xff0c;则可以直接使用本地的服务作为备选&#xff0c;即进行降级熔断。 如之前所提到的微服务为例&#xff1a; 如果希望实现降级熔断&#xff0c;可以在本地创建一个实现…

Mac版2024 CleanMyMac X 4.14.6 核心功能详解以及永久下载和激活入口

CleanMyMac 是 macOS 上久负盛名的系统清理工具&#xff0c;2018 年&#xff0c;里程碑式版本 CleanMyMac X 正式发布。不仅仅是命名上的变化&#xff0c;焕然一新的 UI、流畅的动画也让它显得更加精致。新增的系统优化、软件更新等功能&#xff0c;使得在日常使用 macOS 时有了…

【Linux】Linux原生异步IO(一):libaio-介绍

1、IO模型 1.1 简述 相信大家在搜索的时候,都会看到下面这张图,IO的使用场景:同步、异步、阻塞、非阻塞,可以组合成四种情况: 同步阻塞I/O: 用户进程进行I/O操作,一直阻塞到I/O操作完成为止。同步非阻塞I/O: 用户程序可以通过设置文件描述符的属性O_NONBLOCK,I/O操作可…

Cesium-记录差值线

/*** param {Object} startTime Date格式的开始时间* param {Object} endTime Date格式的结束时间* param {Object} coordinates [x1,y1,x2,y2,x3,y3.......]* param {Object} entityCollection 实体收集器*/ async function interpolationLine(startTime,endTime,coordinat…

工厂 模式

一、工厂模式是什么&#xff1f; 是C多态的一种很好的具体表现。通过继承&#xff0c;重写抽象父类的虚函数&#xff0c;并在main函数中通过基类指针指向子类对象的一种编码风格 工厂模式分为三种&#xff08;简单工厂模式&#xff0c;工厂方法模式&#xff0c;抽象工厂模式&…

晶圆测量新利器:光谱共焦传感器优势解析

光谱共焦位移传感器和激光三角位移传感器在表面测量领域均占据重要位置&#xff0c;它们各自在测量物体厚度方面表现出独特的优势。尽管两者具备测量功能&#xff0c;但根据应用环境和所需精度&#xff0c;它们的适应性呈现出显著差异。 具体而言&#xff0c;光谱共焦位移传感器…

PSCA电源控制集成之分布式PPU

PPU的放置是一个重要考虑因素。最简单的方法是将所有的PPU都放置在SCP所在的始终开启的域中。将所有的PPU放置在一个层次结构中&#xff0c;集成问题&#xff0c;如地址映射、互连、时钟和复位等问题都比较简单。然而&#xff0c;有几个原因可能导致这不是最佳选择。 首先&…

Qt---项目代码解析

文章目录 一、main.cpp代码解析二、widget.h代码解析三、widget.cpp代码解析(一) form file 四、.pro Qt项目的工程文件 一、main.cpp代码解析 main函数的形参就是命令行参数。qt是CDefinitely图形界面化编程&#xff0c;要想编写一个qt的图形界面程序&#xff0c;一定要有QAp…

【Spring底层原理高级进阶】Spring Batch清洗和转换数据,一键处理繁杂数据!Spring Batch是如何实现IO流优化的?本文详解!

&#x1f389;&#x1f389;欢迎光临&#xff0c;终于等到你啦&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;持续更新的专栏《Spring 狂野之旅&#xff1a;从入门到入魔》 &a…

蚂蚁感冒 刷题笔记

/* 解题思路 首先根据题意可知 1.蚂蚁速度均为1 即同向蚂蚁永远不可能追上 我们需要求最后感冒蚂蚁的数量 因为蚂蚁碰头将会掉头 效果和俩蚂蚁互相穿过继续走是一样的 所以我们将俩蚂蚁碰头视作穿过 2. 如果俩蚂蚁相向而行 则俩蚂蚁必定碰头 首先 我们获得第一个感冒蚂蚁的…

Vue+OpenLayers7入门到实战:OpenLayers7如何使用gifler库来实现gif动态图图片叠加到地图上

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7 前言 OpenLayers7本身不支持gif图片作为图标要素显示到地图上,所以需要通过其他办法来实现支持gif图片。 本章介绍如何使用OpenLayers7在地图上使用gifler库先生成canvas画板,然后通过canvas画板的重绘事件来重新渲染地图…

URL输入到页面渲染过程详解

当我们在浏览器中输入一个URL并按下回车键时&#xff0c;浏览器会执行一系列步骤来解析URL、发送请求、接收响应&#xff0c;并最终渲染页面。这个过程涉及到多个阶段&#xff0c;包括DNS解析、TCP握手、发送HTTP请求、服务器处理请求、返回HTTP响应、浏览器解析和渲染等。下面…