当前位置: 首页 > news >正文

远程连接服务

 

1.SSH协议握手流程

        TCP三次握手后当前主机与远程服务器之间协商用哪种协议版本,ssh有两个(ssh1/ssh2)一般用ssh2,协商完后进入到密钥交换的阶段,客户端会生成一个公钥和一个私钥,公钥用来上锁,私钥用来解锁,要和远程服务器进行数据传输,需要对数据进行加密,将公钥(锁)发给服务器,服务器接收到当前主机发送的公钥,服务器本身也有公钥和私钥,服务器将发来的公钥与自身的公钥和私钥组成后生成一个新的东西,新的东西就叫共享密钥。这个共享密钥要一直留在服务器不能泄露给任何人,但现在服务器发来的数据主机无法解密,因为主机没有得到服务器的公钥,于是服务器需要将自己的公钥发给主机,让主机将自身的公钥私钥与服务器的公钥相结合生成一个主机的共享安全密钥,于是服务器与主机之间就可以用彼此的公钥加密,用自己的私钥解密。但在这个过程中会有公钥被黑客截取的风险,于是我们在接收服务器发来的公钥时,需要验证发来公钥的合法性,于是服务器生成了一个host公钥和host私钥,用host私钥对共享安全密钥进行处理,生成了一个HASH值的标识,在传输的过程中我们可以用服务器的host公钥对这个标识进行加密,再把服务器上的公钥传过来,主机通过自身的公钥私钥以及服务器的公钥自己也生成了一个HASH标识,此时如果两个HASH值能够配对说明我接受到的公钥是安全的

1.1.非对称加密过程(免密连接)

为了保证每次连接服务器时不需要输入密码,在客户端使用 ssh-keygen 命令生成一个公钥和私钥

交互的生成方式

ssh-keygen

Your identification has been saved in /root/.ssh/id_rsa(私钥) Your public key has been saved in /root/.ssh/id_rsa.pub(公钥)

非交互的生成方式

ssh-keygen -f /root/.ssh/id_rsa -p ""(-f 指定保存文件的名称,-P 指定密码)

现在有了公钥与私钥则需要将公钥传输过去,让它生成一个authorized_keys的文件这里面就是公钥

在客户端输入 ssh-copy-id -i id_rsa.pub(锁) root(锁那个用户)@172.25.254.100(服务器IP)

-i 指定密钥 root( 服务器的root用户)

需要得到服务器的认证,所以需要输入服务器的root密码

此时进入服务器 中的 cd /root/.ssh 中就可以看到authorized_keys文件

此时登录就不需要密码了

http://www.lryc.cn/news/412461.html

相关文章:

  • 系统架构设计师——软件开发方法分类
  • 《看漫画学Python》全彩PDF教程,495页深度解析,零基础也能轻松上手!
  • 用户画像系列——Spark任务调优实践
  • 前端面试宝典【HTML篇】【4】
  • 【UbuntuDebian安装MySQL】在线安装MySQL8
  • PDF翻译神器:这四款可以实现一键搞定,留学党必备!
  • 精心准备的高水平的博客【点评语】,来抄啊!
  • gitlab汉化
  • SSH访问控制:精确管理你的服务器门户
  • Java中的SSL/TLS安全通信实现
  • 2959. 关闭分部的可行集合数目
  • 第十九天培训笔记
  • 初学者编程指南:方法与资源推荐
  • 【SpringBoot】数据验证之URL参数校验
  • 目标检测 | yolov2/yolo9000 原理和介绍
  • 基于Raft算法的分布式KV数据库:一、开篇
  • react-日期选择器封装
  • 【C++题解】1022. 百钱百鸡问题
  • 计算机毕业设计选题推荐-二手闲置交易系统-Java/Python项目实战
  • AI Agents(智能代理)教程:如何创建信息检索聊天机器人
  • Linux——管理本地用户和组(详细介绍了Linux中用户和组的概念及用法)
  • Flink-StarRocks详解:第三部分StarRocks分区分桶(第53天)
  • 8G内存的Mac够用吗 ?苹果电脑内存满了怎么清理?可以有效地管理和优化你的Mac电脑内存,确保设备运行流畅
  • 【LabVIEW学习篇 - 10】:属性、调用节点
  • 如何在数据埋点中发现和修复数据上报逻辑错误
  • 程序员面试“八股文”:助力成长还是应试枷锁?
  • 强化学习-alphazero 算法理论
  • 使用 Rough.js 创建动态水平条形图
  • Python教程(十):面向对象编程(OOP)
  • CTFHUB-文件上传-文件头检查