openssh原理

news2024/11/28 11:48:10

目录

一、openssh是什么

二、安装openssh

三、ssh协议

四、客户端登录过程

(1)远程登录——采用“密码身份验证方式”

(1)远程登录——采用“密钥身份验证(免密登录)方式”

五、openssh配置文件

(1)客户端

(2)服务端的~/.ssh/config文件

(3)服务端的/etc/ssh/sshd_config

1.设置ssh通信监听端口(默认是22)

2.设置监听ip

3.设置不允许远程登录root账号

4.禁止使用密码身份验证方式登录

5.更多常用配置参数

6.设置注意事项


一、openssh是什么

一个软件,用来让windows或者linux客户端,能够远程登陆linux服务器

 官网 ​​​​​​www.openssh.com

openssh=【securet shell】+【ssh协议】

openssh分为客户端、服务端。服务器安装服务端,安装启动后会有一个sshd的服务,负责接收处理其他远程主机上的openssh客户端发来命令

查看openssh版本命令:ssh -V

二、安装openssh

客户端:xshell、securetcrt等远程工具,自带ssh客户端

服务端:

debian系列操作系统

sudo apt-get update

sudo apt-get install openssh-server

ps -ef |grep ssh     //有sshd,说明安装成功

三、ssh协议

ssh协议对通信内容加密,安全;

telnet协议是明文通信不加密,不安全

四、客户端登录过程

客户端输入登录命令:ssh 用户名@服务器ip或服务器主机名

然后客户端就向服务端发送了一个远程登录的请求

(1)远程登录——采用“密码身份验证方式”

第一次登录

  • 客户端发送远程登录请求
  • 服务端根据请求的用户名密码信息,生成密钥对(公钥、私钥),发送公钥给客户端 

公钥用于加密数据,私钥用于解密数据;

---------公钥位置:/etc/ssh/ssh_xxxx_key.pub

---------私钥位置:/etc/ssh/ssh_xxxx_key

  • 客户端收到是否保留公钥的提示,点击保存

linux客户端保存位置:~/.ssh/known_hosts

--------文件内容如下图:

  • 服务端进行安全认证         //即服务器校验客户端手里的公钥,和私钥匹配就认证通过
  • 认证通过,建立连接,登录成功

第二次登录

  • 客户端发送远程登录请求
  • 服务端检测到客户端已经有公钥了
  • 服务端进行安全认证
  • 认证通过,建立连接,登录成功

第三次登录,出现报错

  • 服务端删除了密钥对(ssh_xxxxxx含登录用户标识_key、ssh_xxxxxx含登录用户标识_key.pub)
  • 客户端发送远程登录请求
  • 服务端检测到客户端已经有公钥了
  • 服务端进行安全认证——>服务端上没有对应的私钥
  • 认证失败,客户端报错

第四次登录,出现拒绝连接

  • 服务端删除了密钥对(ssh_xxxxxx含登录用户标识_key、ssh_xxxxxx含登录用户标识_key.pub)
  • 服务端重启ssh服务(执行systemctl restart sshd),重新生成了密钥对
  • 客户端发送远程登录请求
  • 服务端检测到客户端已经有公钥(服务端删除之前的)
  • 服务端进行安全认证——>客户端公钥、服务端私钥不匹配
  • 认证失败,客户端提示服务器拒绝连接的

解决办法:客户端清空公钥信息      //执行:>~/.ssh/known_hosts

(1)远程登录——采用“密钥身份验证(免密登录)方式”

第一次登录

  • 客户端手动生成密钥对   

linux客户端-手动生成密钥对-命令:ssh-keygen

ssh-keygen -t             //-t,自定义加密方式,默认是rsa

ssh-keygen --help     //查看支持哪些加密方式

ssh-keygen -f            //设置保存位置,默认放到~/.ssh/

  • 手动发送公钥给服务端

客户端-手动发送公钥-命令:ssh-copy-id 用户名@服务器ip或服务器主机名

---------公钥位置:服务端的~/.ssh/authorized_keys

  • 客户端发送远程登录请求
  • 客户端进行安全认证         //即客户端校验服务端手里的公钥,和私钥匹配就认证通过
  • 认证通过,建立连接,登录成功

五、openssh配置文件

(1)客户端

/etc/ssh/ssh_config           主配置文件

/etc/ssh/ssh_config.d        子配置文件

(2)服务端的~/.ssh/config文件

设置“服务端进行安全认证时,检查客户端公钥的行为”


适用于内网等安全通信环境(不安全):

StrictHostKeyChecking=no                    //客户端没有公钥或不匹配,服务端就把现在的公钥发送给客户端,让其保存到~/.ssh/known_hosts里

外网环境下的设置(安全):

StrictHostKeyChecking=ask(默认)    //客户端没有公钥或不匹配,会询问

StrictHostKeyChecking=yes                  //客户端公钥不匹配,不提示,直接拒绝

(3)服务端的/etc/ssh/sshd_config

1.设置ssh通信监听端口(默认是22)

添加或改为port 22     ###通过ip找到主机,通过端口找到主机提供哪个服务。1-1024端口一般是系统服务的端口

2.设置监听ip

AddressFamily any                           ###不管是ipv4还是ipv6都支持

ListenAddress 0.0.0.0                       ###监听服务器所有网卡的ip(服务器可以有多个网卡,就可能存在多个ip地址)

HostKey /etc/ssh/ssh_ XXXX_key    ###记录服务器私钥位置,如果该位置私钥被删了,重启时会根据此参数重新生成私钥

3.设置不允许远程登录root账号

PermitRootLogin no                          ###有3种:yes、no、without-password,without-password表示允许且支持免密方式远程登录root账号

4.禁止使用密码身份验证方式登录

PasswordAuthentication yes改为no。然后systemctl reload sshd.service


说明:关闭后,就只有免密登录这一种方式了。需要确保用户在远程服务器上的

~/.ssh/authorized_ keys 文件中填充有公钥,以便可以登录

5.更多常用配置参数

6.设置注意事项

设置后,要systemctl reload sshd重新加载或者重启服务,配置的修改才会生效

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

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

相关文章

从零开始写一个Vue3+Element Plus的后台管理系统

写在开始之前 接触Vue3也有一年的时间了,除了刚开始用Vue3做了一个小小的项目,其后一直没有机会在项目中真正使用Vue3,反而一直维护Vue2的老项目。作为一个有追求(wuliao)的前端,那就自己开一个git仓库练手…

RAM内存,ROM,CACHE缓存

RAM(Random Access Memory):(redis是在这一层做的  随机存储器,俗称内存,我们常说的电脑内存8g,指的就是这个(也不完全正确)。RAM要求每时每刻都不断地供电,否则数据会丢失。它由半…

抖音无需代码连接飞书自建的方法

抖音用户使用场景: 公司短视频运营人员每天需要监管企业抖音视频的评论并及时处理,日常工作流程为:每当抖音上发布的视频有新增评论时,运营人员需要将评论内容发送到企业飞书群中通知相关人员及时跟进。整个流程看似比较简单&…

分页存储管理方式

目录 一、分页存储管理的基本方法 1.1页面与物理块 (1)页面 (2)页面大小 1.2地址结构 1.3页表 二、地址变换机构 2.1基本的地址变换机构 2.2具有快表的地址变换机构 三、访问内存的有效时间 案例习题: 1.二进制 2.基本…

ElasticSearch数据备份还原

ElasticSearch数据备份还原 使用Elasticsearch的API导出数据 Elasticsearch并没有内置的数据导出工具,但是可以使用多种方法来导出数据,包括使用Elasticsearch的API或者使用外部工具。这是一个使用Elasticsearch的API进行数据导出的基本步骤&#xff1…

OpenCV中的图像处理3.9(六)轮廓线特征与属性

目录 3.9 OpenCV中的轮廓线3.9.1 轮廓线:入门目标什么是轮廓线?如何绘制轮廓线?轮廓线逼近法 3.9.2 轮廓线的特征1. 矩2. 轮廓线面积3. 轮廓线周长4. 轮廓逼近5. 凸面体6. 检查凸性7. 边界矩形8. 最小包围圈9. 拟合椭圆10. 拟合直线 3.9.3 轮…

Springboot +Flowable,流程表单应用之外置表单(JSON形式)(二)

一.简介 整体上来说,我们可以将Flowable 的表单分为三种不同的类型: 动态表单 这种表单定义方式我们可以配置表单中每一个字段的可读性、可写性、是否必填等信息,不过不能定义完整的表单页面。外置表单 外置表单我们只需要定义一下表单的 k…

前端实现可拖拽课程表【纯HTML、CSS、JS】

前言 hello,今天实现点小动画,帮助学习理解Web api的拖拽效果,这里实现的是可拖拽的课程表!# 效果图 附:作者没钱去除水印,就这样看一下简单的看一下效果吧! 实现前言知识 这里我使用事件委…

轻量化Verilog开发环境搭建

轻量化Verilog学习环境搭建 本文记录基于vscode、iverilog搭建轻量化Verilog学习环境的方法。 ref: VSCode Verilog工具链、linux下搭建轻量易用的verilog仿真环境 环境搭建 (1)安装iverilog,这是一个轻量化的开源verilog编译器&#xff0…

4月更新 | Visual Studio Code Python

我们很高兴地宣布2023年4月版 Visual Studio Code 的 Python 和 Jupyter 扩展现已推出! 此版本包括以下改进: Data Wrangler 可供 Visual Studio Code Insiders 使用移动符号重构Create Environment 按钮嵌入依赖文件扩展作者的环境 APIPython 环境的内…

Foxit PDF Reader及Editor任意代码执行漏洞复现(CVE-2023-27363)

0x01 产品简介 Foxit PDF Reader是一套用来阅读PDF格式文件的软件,由福建福昕软件所研发,主要运行在Windows操作系统上。 0x02 漏洞概述 Foxit PDF Reader及Editor中存在任意代码执行漏洞,由于Foxit PDF Reader/Editor未验证exportXFAData方…

【C++】3. 类和对象 - 类的六大默认成员函数

专栏导读 🍁作者简介:余悸,在读本科生一枚,致力于 C方向学习。 🍁收录于 C专栏,本专栏主要内容为 C初阶、 C 进阶、STL 详解等,持续更新中! 🍁相关专栏推荐: …

定薪17K*15,阿里测试岗上岸经验分享.....

先简单介绍一下我自己吧,等会大家以为我是什么学历狂人,技术大牛,我毕业于广东一个普通本科院校,绝对不是什么双一流大学,大家不要有距离感,这也是我为什么来分享的原因,因为我觉得我这段经验还…

Agisoft Metashape 空三导入Photomod

Agisoft Metashape 空三导入Photomod 文章目录 Agisoft Metashape 空三导入Photomod前言一、Metashape空三成果导出1.1导出PAT-B空三格式1.2. 导出相机文件二、Photomod空三成果导入2.1导入PAT-B空三格式2.2导入相机文件前言 本文讲解将Agisoft Metashape的空三成果导入Photom…

uniapp - 微信小程序接入腾讯视频播放器功能插件,uniapp开发微信小程序端调用引入并使用腾讯视频播放组件完整全流程(详细示例源码,一键复制开箱即用)

效果图 在uniapp 微信小程序项目中,集成腾讯视频功能插件,实现播放腾讯视频效果,附带详细示例源码及注释, 你可以跟着步骤一步步来,保证几分钟就能快速在uniapp小程序项目中植入腾讯视频功能! 一、开通插件 首先使用腾讯视频的话

【数据结构】链表的增删改查| 组件化封装

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;专栏汇总&#xff1a;全部文章专栏汇总 &#x1f525; 给大…

BSN-DDC基础网络详解(十一):官方门户OpenAPI说明及开发资料汇总

01 官方门户OpenAPI说明 官方门户OpenAPI是BSN联盟面向算力中心方和平台方开放的一套官方门户业务管理服务接口。“业务开通”和“资金账户充值/提现”操作&#xff0c;需通过官方门户手工执行&#xff0c;官方门户内的其它功能&#xff0c;都建议算力中心方和平台方按照官方…

Mongo集合操作

2、创建切换数据库 2.1 默认数据库 mongo数据库和其他类型的数据库一样&#xff0c;可以创建数据库&#xff0c;且可以创建多个数据库。 mongo数据库默认会有四个数据库&#xff0c;分别是 admin&#xff1a;主要存储MongoDB的用户、角色等信息 config&#xff1a;主要存储…

数据泄露、数据爬取......金融机构要如何保护催收场景下的数据安全?

金融企业的贷后催收是指向借款人发送催收通知和采取其他措施&#xff0c;以确保借款人按时还款并追回逾期贷款的过程。这通常包括电话催收、信函催收、上门访问等方式。贷后催收通常由金融机构内部的专业团队或第三方专业催收公司承担。 由于催收业务会涉及到很多个人信息&…

家政服务预约小程序开发 解放双手享受洁净生活

在外工作忙了了一天回到家还有做不完的家务&#xff0c;很多时候家庭主妇总是受不了这样的生活二崩溃&#xff0c;随着生活水平的提高&#xff0c;上门家政预约类软件层出不穷&#xff0c;让万千家庭足不出户就可在线预约家政服务&#xff0c;在家享受专业的保洁、维修、安装等…