简书 SSH 登录流程分析
https://www.jianshu.com/p/0473f269f4a6
结合如下看,有评论说下面的总结可能有问题,可能总结反了,总结的流程原理是有参考意义的
SSH公钥登录(私钥认证)原理
https://blog.csdn.net/csm201314/article/details/78453579
在平时工作中我们经常要远程登录服务器,这就要用到SSH协议:
$ ssh user@host
主要有两种登录方式:第一种为密码口令登录,第二种为公钥登录
密码口令登录
通过密码进行登录,主要流程为:
1、客户端连接上服务器之后,服务器把自己的公钥传给客户端
2、客户端输入服务器密码通过公钥加密之后传给服务器
3、服务器根据自己的私钥解密登录密码,如果正确那么就让客户端登录
公钥登录
公钥登录是为了解决每次登录服务器都要输入密码的问题,流行使用RSA加密方案,主要流程包含:
1、客户端生成RSA公钥和私钥
2、客户端将自己的公钥存放到服务器
3、客户端请求连接服务器,服务器将一个随机字符串发送给客户端
4、客户端根据自己的私钥加密这个随机字符串之后再发送给服务器
5、服务器接受到加密后的字符串之后用公钥解密,如果正确就让客户端登录,否则拒绝。这样就不用使用密码了。
下面主要说说RSA
先介绍两个概念:
对称加密:对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。对称加密通常使用的是相对较小的密钥,一般小于256 bit。因为密钥越大,加密越强,但加密与解密的过程越慢。如果你只用1 bit来做这个密钥,那黑客们可以先试着用0来解密,不行的话就再用1解;但如果你的密钥有1 MB大,黑客们可能永远也无法破解,但加密和解密的过程要花费很长的时间。密钥的大小既要照顾到安全性,也要照顾到效率。对称加密的一大缺点是密钥的管理与分配,换句话说,如何把密钥发送到需要解密你的消息的人的手里是一个问题。在发送密钥的过程中,密钥有很大的风险会被黑客们拦截。现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人。
非对称加密:非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。比如,你向银行请求公钥,银行将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人–银行才能对你的消息解密。与对称加密不同的是,银行不需要将私钥通过网络发送出去,因此安全性大大提高。目前最常用的非对称加密算法是RSA算法。虽然非对称加密很安全,但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。
公钥和私钥:
1、 一个公钥对应一个私钥。
2、密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。
3、如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。
4、如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。
RSA算法的作用:
1、加密:公钥加密私钥解密
主要用于将数据资料加密不被其他人非法获取,保证数据安全性。使用公钥将数据资料加密,只有私钥可以解密。即使密文在网络上被第三方获取由于没有私钥则无法解密。从而保证数据安全性。
A在自己电脑上生成RSA钥匙文件,一个私钥文件一个公钥文件,并将他的公钥传送给B。
此时B要传送信息给A,于是B用A的公钥加密他的消息,然后传送给A。【网络上传输的密文,没有A的私钥无法解密,其他人获取之后也没用】
A用他的私钥解密B的消息。
2、认证:私钥加密公钥解密
主要用于身份验证,判断某个身份的真实性。使用私钥加密之后,用对应的公钥解密从而验证身份真实性。
A要验证B是否是真实用户
1、B将自己公钥给A
2、B将文件用自己私钥加密传送给A
3、A根据B的公钥解密,如果成功则为真实身份用户
SSH公钥登录则用的是第二种功能。
安全性: 这种算法非常可靠,密钥越长,它就越难破解。根据已经披露的文献,目前被破解的最长RSA密钥是768个二进制位。也就是说,长度超过768位的密钥,还无法破解(至少没人公开宣布)。因此可以认为,1024位的RSA密钥基本安全,2048位的密钥极其安全。所以我们在用ssh-keygen命令时候要注意密钥长度,具体参数为:
-b bits
指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。DSA密钥必须恰好是1024位(FIPS 186-2 标准的要求)。
总结:
公钥与私钥使用场景:
(1)私钥用来进行解密和签名,是给自己用的。
(2)公钥由本人公开,用于加密和验证签名,是给别人用的。
(3)当该用户发送文件时,用私钥签名,别人用他给的公钥验证签名,可以保证该信息是由他发送的。当该用户接受文件时,别人用他的公钥加密,他用私钥解密,可以保证该信息只能由他接收到。
原文链接:https://blog.csdn.net/csm201314/article/details/78453579
简书 SSH 登录流程分析相关推荐
- WireShark抓包获取简书的登录密码
现在某些网站在用户登录的过程中都是使用明文来传输用户密码的,这就使得用户密码完全暴露在网络中.通过抓包工具就很容易抓取密码.这里就以抓取简书的登录密码为例来介绍下抓包的过程. 1. 下载工具 抓包工具 ...
- 使用Chakra-UI封装简书的登录页面组件(React)
要求:使用chakra ui和react 框架将简书的登录页面的表单封装成独立的可重用的组件 使用到的API: 注册API 请求方式:POST 请求地址: https://conduit.produc ...
- Linux查看当前ssh登录数,linux /centos 查看ssh登陆日志,从SSH登录情况分析服务器安全...
1.wtmp日志 SSH下直接执行命令 即可查看所有SSH登陆日志 包括IPlastlast -x -F 2.查看在线用户情况 (1)w 命令用于显示已经登陆系统的用户列表,并显示用户正在执行的指令. ...
- iOS实现简书的登录验证方式(极验验证)
开篇 我们登录简书的时候就会看到如下类似的验证方式,个人还是很喜欢这种验证方式的,想着如果把它自如自己设计的软件中还是不错的,但是我们要怎么实现这种验证效果呢,今天就来介绍一下. 图形验证码.gif ...
- App Store里“简书”app的评价分析
我想通过App Store去了解app的信息,清一色的好评怎么回事?在淘宝买水军刷榜了吧.一水的同样文笔的评论真的是够了,一共5.78万的评论,看看这分布,95%的都是4星和5星,迷了迷了.下载简书, ...
- Ultimate Member插件注册登录流程分析
Ultimate Member 是一个强大而灵活的WordPress插件,可以让用户在前台注册.登录.编辑个人资料等.该插件可以让你添加漂亮的用户个人资料到你的网站中,快速创建一个先进的社区. 本文我 ...
- 学习淘淘商城第八十七课(单点登录用户登录流程分析及用户登录Service层)
我们先来看下登录流程图,如下图所示. 用户登录涉及到三个部分,第一部分是淘淘商城前台工程,第二部分是单点登录服务,第三部分是Redis服务.具体流程下图已经说的很明白了,我就不再啰嗦一遍了,相比于传统 ...
- 16 OAuth2登录流程分析
上文已经简单说过,OAuth2登录的基本实现原理是:Client获取用户授权,得到令牌,通过令牌,获取用户信息(资源).再在本地构建用户登录认证信息,维持用户会话状态,以此达到登录的目的. 下文便从源 ...
- 幼麟棋牌登录流程分析
1.默认开机进入的是startScene,加载了AppStart脚本,其中有一个非常重要的方法,初始化了游戏内用到的所有管理器,另外还请求了服务器的版本信息(次要) function initMgr( ...
最新文章
- 【bzoj 4764】弹飞大爷
- Linux驱动编程 step-by-step (六) 用户地址检测 简单模块调试 以及一些杂项
- Nginx反向代理之proxy_set_header指令
- lua52 C API测试代码
- 西南大学0039c语言作业答案,2017年6月西南大学继续教育学院C语言0039大作业答案...
- 最通俗易懂的YOLOv3原理及代码解析
- 【clickhouse】clickhouse 漫谈SIMD、SSE指令集与ClickHouse向量化执行
- OpenGL ES之GLSurfaceView学习一:介绍
- mysql+sqlplus命令找不到_oracle sqlplus命令报command not found
- win7网络适配器_win7网络重置
- 单相Boost功率因数校正电路(PFC)设计与仿真(Simulink Saber):第二章 仿真模型搭建与控制参数整定
- Gitee如何上传整个项目文件夹
- QT翻金币小游戏实现(三)
- BZOJ2668:[CQOI2012]交换棋子——题解
- Linux Centos7 搭建简易堡垒机安装jailkit实现chroot
- jquery获取所有子元素宽度之和
- ArcGIS环境搭建及地图服务发布
- UE4-(光照)光照贴图大小及环境光遮蔽
- 《MFC编程》:MFC库中类的简介
- 信息流大决战:百度补齐最后一环、今日头条深沟固垒
热门文章
- 将ubuntu光盘作为安装源_[转载]Ubuntu 以光盘做为软件源
- cffi java_atomiclong-使用CFFI的原子长类型。-David Reid
- python加号换行,Python字符串拼接六种方法介绍
- python每月定时_paypal每月订阅计划设置为每月的第一天,并进行每月定期付款 – django python...
- mysql 字段字节_MySql字段类型及字节
- python字符串出栈方法_python字符串常用方法
- 使用指针输入输出一维数组
- 存在就不插入_DOM 插入节点和三个Child方法
- hive同时不包含一些字符串_Hive中常用的字符串操作
- skype安卓手机版_危险的战争游戏安卓手机版下载-危险的战争下载v1.0.13