为了理解SSH,先要介绍两个重要概念:对称加密和非对称加密。

对称加密

在对称加密中,客户端和服务端使用同一个密钥对数据进行加密和解密。这种方法的好处是加密强度高,很难破解。

缺点也很明显,即密钥本身容易被泄漏。因此,如何保存密钥成为了关键问题。于是引出了第二种加密方式:非对称加密。

非对称加密

在非对称加密中有两个密钥,公钥和私钥。

这两个密钥配对产生和使用。

用公钥加密的数据,必须用与其对应的私钥才能解开。

并且,私钥无法通过公钥获取。

因此,公钥是可以被公开的,而私钥则必须被安全存放。

在SSH中,非对称加密被用来在会话初始化阶段为通信双方进行会话密钥的协商。
由于非对称加密的计算量开销比较大,因此一旦双方的会话密钥协商完成,后续的加密都将采用对称加密来进行。

++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++
比如说 linux1 作为客户端 linux2 作为服务端 linux1 linux2 都有root用户 root用户进行linux1 和 linux2 的远程登录

  1. 客户端发起一个TCP连接,默认端口号为22.
  2. 服务端收到连接请求后,将自己的一些关键信息发给客户端。这些信息包括:
  • 服务端的公钥:客户端在收到这个公钥后,会在自己的“known_hosts”文件进行搜索。

  • 如果找到了相同的公钥,则说明此前连接过该服务器。

  • 如果没有找到,则会在终端上显示一段警告信息,由用户来决定是否继续连接。

[root@localhost sh]# ssh ip
The authenticity of host 'ip (ip)' can't be established.
ECDSA key fingerprint is SHA256:TnhaloWlcB8v9jJ7QSmeK0HaFBbgJ+gAEff639wf/jM.
ECDSA key fingerprint is MD5:d1:d7:59:ea:8b:df:7a:2b:49:1c:3f:05:7f:c2:49:b5.
Are you sure you want to continue connecting (yes/no)?
  • 服务器所支持的加密算法列表:客户端根据此列表来决定采用哪种加密算法。
  1. 生成会话密钥。此时,客户端已经拥有了服务端的公钥。接下来,客户端和服务端需要协商出一个双方都认可的密钥,并以此来对双方后续的通信内容进行加密。
  2. 接下来,客户端将自己的公钥id发送给服务端,服务端需要对客户端的合法性进行验证:
1)服务端在自己的“authorized_keys”文件中搜索与客户端匹配的公钥。2)如果找到了,服务端用这个公钥加密一个随机数,并把加密后的结果发送给客户端。3)如果客户端持有正确的私钥,那么它就可以对消息进行解密从而获得这个随机数。4)客户端由这个随机数和当前的会话密钥共同生成一个MD5值。5)客户端把MD5值发给服务端。6)服务端同样用会话密钥和原始的随机数计算MD5值,并与客户端发过来的值进行对比。如果相等,则验证通过。

至此,通信双方完成了加密信道的建立,可以开始正常的通信了。

总结:

SSH巧妙地利用了对称加密与非对称加密各自的特点,实现了一套安全保密的远程控制协议。

linux通过SSH连接的SSH加密原理(笔记自用)相关推荐

  1. ssh连接缓慢 ssh连接失败问题 Linux 脚本解决ssh连接缓慢问题,windows解决本地ssh连接失败

    解决sshd连接缓慢 Linux系统 脚本 #!/bin/bash #更改ssh连接缓慢问题 echo "请输入要更改的主机名,回车跳过" read i if [[ "$ ...

  2. 安卓linux远程桌面连接,用SSH连接你的android手机

    首先当然是你的手机得有root权限,有了busybox,里面包含了一大堆的linux命令,现在大多的Rom都是从CM改过来的,现在CM的最新版已经是6.1了. 1.准备 rom为基于Cyanogen ...

  3. SSH连接方式及加密方式

    Begin 1.关于对称加密与非对称加密: 对称加密:加密解密使用同一个密钥,即消息发送方与接收方需要协商一个共同的密钥用于消息传输中加解密. 优势:加解密效率高,对计算机要求更低. 劣势: 需要有安 ...

  4. centos mysql ssh连接,使用SSH隧道连接MYSQL

    1. 概述 本文介绍了如何使用SSH隧道连接MySQL,网络隔离导致无法直接访问数据库的问题. 第2节对需求进行了简单的描述:第3节介绍了linux环境下,如何通过SSH隧道连接MySQL:第4节介绍 ...

  5. linux服务器开启远程连接不上,远程SSH连接服务与基本排错经验总结

    为什么要远程连接Linux系统?? 在实际的工作场景中,虚拟机界面或物理服务器本地的窗口都是很少能够接触到的,因为服务器装完系统后,都要拉到IDC机房托管,如果是购买了云主机,更碰不到服务器本地显示器 ...

  6. 远程SSH连接服务与基本排错

    为什么要远程连接Linux系统?? 在实际的工作场景中,虚拟机界面或物理服务器本地的窗口都是很少能够接触到的,因为服务器装完系统后,都要拉到IDC机房托管,如果是购买了云主机,更碰不到服务器本地显示器 ...

  7. SSH服务详解(七)– SSH 连接 Github

    SSH 连接 Github SSH服务详解(一)–Linux SSH 服务器与客户端的安装与启动 SSH服务详解(二)–使用私钥登录 SSH 服务器(免密登录) SSH 服务详解 (三)-- 使用 S ...

  8. ssh工作流程(工作原理)

    目录 ssh简介 加密的方式 ssh工作流程 1.版本号协商 2.密钥和算法协商 产生会话密钥的流程: 认证阶段 基于口令的认证: 基于公钥的认证:免密登录 ssh简介 ssh: secure she ...

  9. 使用 SSH 连接 GitHub

    目录 使用 SSH 连接 GitHub 关于 SSH 检查现有 SSH 密钥 生成新的 SSH 密钥并把它添加到 ssh 代理中 关于生成 SSH 密钥 生成新的 SSH 密钥 将 SSH 密钥添加到 ...

最新文章

  1. CryptoAPI 学习
  2. c++thread里暂停线程_多线程技术
  3. 项目搭建Nacos及遇到问题解决
  4. 信息学奥赛一本通(1102:与指定数字相同的数的个数)
  5. shelve模块使用说明
  6. LOL登录后黑屏,主界面一直加载解决办法
  7. 计算机软件3dmax在展览中的研究,关于3DMAX软件的虚拟现实技术的应用研究
  8. 测试工程师面试题整理
  9. “未来杯”第二届知识图谱锦标赛正式启动
  10. Dragonfly 三维可视化数据分析处理软件-切片分析工具使用教程
  11. Guava的两种本地缓存策略
  12. windows10 添加图片查看器
  13. 睁开双眼玩立体游戏 3D显示技术解析
  14. 飞书小程序和微信小程序的调试
  15. xp 开机画面【欢迎使用】四个字更改方法
  16. 淘宝、天猫、京东主图及详情页尺寸
  17. BigData之Hadoop:Hadoop框架(分布式系统基础架构)的简介(两大核心【HDFS存储和MapReduce计算】)、深入理解、下载、案例应用之详细攻略
  18. 护眼灯显色指数多大最好?一文了解护眼灯显色指数怎么选
  19. 分布式事务之TX-LCN
  20. PDF文件压缩的简单方法

热门文章

  1. 考前自学系列·计算机组成原理·存储器画图
  2. 2016年中国数据安全五大发展趋势
  3. pyodbc psutil wmi paramiko
  4. 能源结构进入变革时代 光伏业趋于壮大转型
  5. Mysql 存储引擎和事物基础概念
  6. mysql TableMap id递增问题
  7. 使用Convirt 2.0.1管理虚拟机环境
  8. 停止宗教战争,好吗?
  9. 原来安全也能像足球那么踢的
  10. mysql killed 不掉,解决:kernel: Out of memory: Killed process 15967, UID 27, (mysqld).