首页 > 其他分享 >ssh原理

ssh原理

时间:2024-03-17 21:35:53浏览次数:20  
标签:公钥 加密 密码 ssh 服务器 原理 客户端

SSH是一种网络协议,用于计算机之间的加密登录。由于对称加密很难保证客户端不将秘钥泄漏,存在安全性问题,ssh使用非对称加密

密码认证

  1. 服务器收到客户端的连接请求,将自己的公钥发送给客户端
  2. 客户端收到公钥后,将密码用公钥加密后发送给服务器
  3. 服务器收到加密后的密码后,用自己的私钥解密,得到密码,然后验证密码是否正确
  4. 如果密码正确,则登录成功,给客户端响应

存在的问题:中间人攻击
中间人拦截了客户端的请求,然后伪装成服务器,将自己的公钥发送给客户端,客户端将密码用公钥加密后发送给中间人,中间人用自己的私钥解密后得到密码,窃取了用户的登录信息

解决方案:口令登录
第一次登录服务器(ssh user@host)时,无法确认服务器的真实性,只会输出对方的公钥指纹(RSA 1024位公钥使用MD5计算得到的128位指纹,或者其他加密方式),用户需要自行确认指纹是否正确,如果正确,则接受服务器的公钥,该服务器得到认可。
服务器公钥被接受后,会被保存在~/.ssh/known_hosts文件中,下次登录服务器时,系统认出服务器公钥,就不再提示用户确认了。

秘钥认证

  1. 客户端生成一对秘钥,公钥和私钥,将公钥存放在服务器上
  2. 服务器收到客户端的连接请求后,本地查找客户端的公钥,然后用公钥加密一个随机数发送给客户端
  3. 客户端收到加密后的随机数后,用自己的私钥解密,然后将解密后的随机数发送给服务器
  4. 服务器收到解密后的随机数后,验证是否正确,如果正确,则登录成功,给客户端响应,不再需要密码

生成秘钥对:ssh-keygen
执行后在~/.ssh/目录下生成id_rsa和id_rsa.pub两个文件,前者是私钥,后者是公钥
传输公钥:ssh-copy-id user@host
从此就不用输入密码了,直接使用ssh user@host登录
对于像github这样的网站,可以将公钥添加到网站上。
此时远程主机将你的公钥加入到登录用户主目录~/.ssh/authorized_keys文件

标签:公钥,加密,密码,ssh,服务器,原理,客户端
From: https://www.cnblogs.com/wangerblog/p/18079224

相关文章

  • Paramiko SSH登入设备保存配置
    实验描述:使用Paramiko库,通过SSH连接网络设备并执行指令。网络拓扑:拓扑图及初始配置如上。Python代码:importdatetimeimportparamikoimporttimessh_proc=paramiko.SSHClient()###使用SSHClient()ssh_proc.set_missing_host_key_policy(paramiko.AutoAddPolicy......
  • 协同编辑功能实现原理概述
    协同编辑是一种多用户同时在线编辑同一文档或项目的技术,允许多人实时或异步地对内容进行添加、删除和修改,但是不会互相覆盖各自的修改。这在文档编辑、软件开发等领域非常流行和有用,比如飞书文档、谷歌doc等。协同编辑主要面临的技术问题包括:版本管理、冲突检测、合并冲突、实时......
  • 【网络原理】TCP三次握手四次挥手
    文章目录......
  • 【网络原理】TCP协议详细解析
    文章目录......
  • 学习JavaEE的日子 Day27 手撕HashMap底层原理
    Day271.手撕HashMap底层原理(重点)publicclassTest01{ publicstaticvoidmain(String[]args){ // Floatfloat1=newFloat("0.0f");// Floatfloat2=newFloat("0.0f");// Floatresult=float1/float2;// System.out.println(result);/......
  • (容斥原理例题)洛谷P1287 盒子与球
    题目链接点击此处前往题目思路标题就不难知道,这是一道关于容斥原理的题目只需要简单一想就不难发现,这道题很可能会有很多重复的情况,就比如说我原来想的一个思路,先找出r个球来铺满第一层,然后再排列剩下的小球,这就会有很多重复的情况,比如说第一层的去了第二层,但是只是上......
  • TL431原理及使用
    TL431内部组成:运放+三极管    器件常见原理图: TL431可控精密稳压源与线性稳压器的区别线性稳压器可以接入大电流,而TL431一般不能超过100mA 参考链接:https://blog.csdn.net/weixin_61325357/article/details/127542270 ......
  • C++ STL第三篇(搞清楚deque原理和有多少用法)
    dequeVector容器是单向开口的连续内存空间,deque则是一种双向开口的连续线性空间。所谓的双向开口,意思是可以在头尾两端分别做元素的插入和删除操作,当然,vector容器也可以在头尾两端插入元素,但是在其头部操作效率奇差,无法被接受。Deque容器和vector容器最大的差异,一在于deque允许......
  • windows11配置ssh别名实现免密登录linux系统
    1在windows11上安装git2在git终端输入以下命令生成id_rsa进入到.ssh目录C:\Users\xxxxx.ssh,一般情况目录在这个位置ssh-keygen-trsa-b4096-C"[email protected]"输入命令后一直回车生成3将生成的rsa_pub的内容复制到linux服务器的~/用户名/.ssh/authorized_keys中......
  • “傻瓜”学计量——主成分分析法PCA(原理+实操)
    提纲:1.PCA原理2.视频推荐:PCA原理   spass操作    stata操作+matlab实操1.背景在一些领域中,需要对大量数据进行观测。但是可能会带来变量之间具有相关性、分别对每个指标分析带来的偏误,等问题。因此,要寻找一个合理的方法,在减少需要分析的直白哦的同时,尽量减少......