首页 > 其他分享 >ssh服务工作原理和配置

ssh服务工作原理和配置

时间:2023-11-17 19:32:22浏览次数:22  
标签:公钥 配置 192.168 ssh 原理 连接 服务端 客户端

ssh服务

ssh: secure shell,22/tcp,安全的远程登录,实现加密通信,代替传统的telnet协议

具体的软件实现:

  1. OpenSSH:ssh协议的开源实现,Centos默认安装
  2. dropbear:另一个开源项目的实现

SSH协议版本

  1. v1:基于CRC-32做MAC,不安全;man-in-middle
  2. v2:双方主机协议选择安全的MAC方式,基于DH算法做密钥交换,基于RSA或DSA实现身份认证

公钥交换原理

ssh服务的公钥和ssh服务的版本无关,v1和v2版本都同样,存在被劫持的风险,第一次连接一定要确保连接正确。

  1. 客户端发起连接请求
  2. 服务的返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)
  3. 客户端生成密钥对
  4. 客户端用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密
  5. 客户端发送加密后的值到服务端,服务端用私钥解密,得到Res
  6. 服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)
  7. 最终:双方各自持有三个密钥,分别为自己的一对公、私钥以及对方的公钥,之后的所有通讯都会被加密

ssh服务工作原理和配置_远程登录


服务端发生改变

当客户端第一次保存连接的服务端公钥后,后面的每次连接都会检查公钥是否一致,如果目标机器公钥发生了变化(也有可能是其它机器使用了和服务端相同的ip),ssh会发出警告

ssh服务工作原理和配置_服务端_02


测试:

ssh客户端192.168.224.162向ssh服务端192.168.224.163发起第一次连接,经过确认后,保存了服务端的公钥并连接。

ssh服务工作原理和配置_服务端_03


下面我将原服务端192.168.224.163关机,模拟连接请求被相同ip的机器劫持或者占用

ssh服务工作原理和配置_远程登录_04


使用第3台机器,配置和服务端相同的地址

ssh服务工作原理和配置_客户端_05


使用客户端再次向192.168.224.163发起连接。

客户端检测到了远程主机的已经发生了改变,和原来不一样,所以发出了警告

客户端在第一次连接的时候,把服务端的公钥下载到了本地家目录 .ssh/known_hosts,由此发现现在连接的服务端已经不是原来的主机了

ssh服务工作原理和配置_ssh_06


ssh服务工作原理和配置_ssh_07


禁止客户端首次连接的询问过程

ssh客户端配置文件:/etc/ssh/ssh_config

将下图 StrictHostKeyChecking ask,取消注释,改为no,将不显示检查指纹信息的提示

sed命令修改方法:sed -i.bak '/StrictHostKeyChecking/s/.*/StrictHostKeyChecking no/' /etc/ssh/ssh_config

ssh服务工作原理和配置_客户端_08


ssh服务工作原理和配置_服务端_09


ssh服务工作原理和配置_远程登录_10


ssh服务工作原理和配置_远程登录_11



标签:公钥,配置,192.168,ssh,原理,连接,服务端,客户端
From: https://blog.51cto.com/520cyy/8452505

相关文章

  • 【电子书分享】龙书《编译原理(第2版)》文字版中文 可复制 完整目录 pdf epub
    目录龙书历史龙书简介作者地址龙书历史编译原理三大圣书——龙书、虎书、鲸书。龙书作为其中之一,广受欢迎。《计算机科学丛书:编译原理(第2版)》是编译领域无可替代的经典著作,被广大计算机专业人士誉为"龙书"。《计算机科学丛书:编译原理(第2版)》上一版自1986年出版以来,被世界......
  • mysql group by 执行原理及千万级别count 查询优化
    大家好,我是蓝胖子,前段时间mysql经常碰到慢查询报警,我们线上的慢sql阈值是1s,出现报警的表数据有7000多万,经常出现报警的是一个groupby的count查询,于是便开始着手优化这块,遂有此篇,记录下自己优化过程中的心得。优化慢sql前,肯定是要懂sql的查询逻辑,所以我先介绍下groupby语句......
  • window允许通过密钥实现ssh免密登录
    //打开命令提示符或PowerShell窗口输入以下命令生成SSH密钥对:ssh-keygen-trsa-b4096默认生成位置:C:\Users\用户名\.ssh\ 找到id_rsa.pub文件将里面的内容添加到服务器的C:\ProgramData\ssh\administrators_authorized_keys文件中如果文件不存在则自行创......
  • Vue 项目配置自动更新,自动刷新页面
    今天用户反馈使用页面的时候,有时候点击没反应,排查下来,是因为发布版本的时候,用户那边没有加载最新的文导致的,然后根据思路,做了这个自动更新的功能效果预览http://demo.webwlx.cn/#/update实现思路1.把当前版本的编译时间,通过环境变量的方式保存起来打开vite.config.jsim......
  • 热更新原理
    (面试)说一下webpack的热更新原理?webpack通过watch可以监测代码的变化;webpack-dev-middleware可以调用webpack暴露的API检测代码变化,并且告诉webpack将代码保存到内存中;webpack-dev-middleware通过sockjs和webpack-dev-server/client建立webSocket长连接,将we......
  • Babel原理及其使用
    Babel的包构成核心包babel-core:babel转译器本身,提供了babel的转译API,如babel.transform等,用于对代码进行转译。像webpack的babel-loader就是调用这些API来完成转译过程的。babylon:js的词法解析器babel-traverse:用于对AST(抽象语法树,想了解的请自行查询编译原理)......
  • 适合小白的 nvm 安装配置教程
    适合小白的nvm安装配置教程目录适合小白的nvm安装配置教程nvm简介一、nvm的安装与配置1、installnvm2、basecommand【主要验证nvm是否安装成功】3、configuretaobaomirror二、node的安装与配置1、installnode2、配置node的prefix(全局路径)和cache(缓存路径)2.1、......
  • 记一个漏洞处理,SSH框架上传限制文件类型,以及关于文件上传安全问题的讨论
    -----------------------------------------------------------------------------------------------------------------------------------与同事讨论的文件上传安全问题:1.老项目采用的上传至项目下某个目录的做法是很不安全的,容易被访问到上传文件,应当制定到项目之外的目......
  • Log4j配置文件(四步轻松拿捏Log4j使用-入门必看!!)
    Hii,mJinXiang⭐前言 ⭐本篇文章主要介绍Log4j入门使用以及部分理论知识本篇又称(Log4的使用四步轻松拿捏)......
  • 微服务 Nacos 多环境配置共享
       ......