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

通过ssh远程登录linux的原理过程和配置免密登录

1.总结通过ssh远程登录linux的原理过程

基于口令的认证

  • 客户端和服务端建立TCP连接
协商阶段
  • 双方进行ssh版本协商
密钥协商阶段
  • 在服务器端生成一对密钥,将公钥传递给客户端,客户端将密钥C用服务端的公钥进行加密后传递给服务端,服务端用私钥解密得到密钥C。
认证阶段
  1. 使用密钥C将用户名加密后发送给服务端
  2. 服务端使用密钥C解密后确认用户名存在,应答信息
  3. 客户端使用密钥C加密登录密码后发送给服务端
  4. 服务端使用密钥C解密后,确认身份,成功登录。
通信阶段
  • 数据通信阶段,双方用密钥C加密通信。

基于密钥的认证

  1. 在客户端生成生成一对密钥,将公钥传送到服务端上。
  2. 客户端和服务端建立TCP连接
协商阶段
  • 双方进行ssh版本协商
密钥协商阶段
  • 在服务器端生成一对密钥,将公钥明文传递给客户端,客户端将密钥C用服务端的公钥进行加密后传递给服务端,服务端用私钥解密得到密钥C。
认证阶段
  1. 客户端发送请求使用密钥进行认证并将自己的公钥发送给服务端
  2. 服务端收到请求与公钥后,与自己本地的公钥进行比对,如果一样,则生成一段随机值并用公钥加密,发送给客户端。
  3. 客户端收到后用私钥进行解密,将解密后的数据发送给服务端。
  4. 服务端确认后,成功登录。
数据通信阶段
  • 基于密钥C进行通信。

2.配置两台主机的远程连接实现免密登陆

  1. 根据密钥认证的流程,首先在客户端上生成一对密钥。使用ssh-keygen命令创建密钥对。
ssh-keygen -t rsa # -t选项可以指定密钥类型

image-20221017220046543

  1. 将公钥发送给服务端,可以使用命令ssh-copy-id直接发送,也可以使用scp命令进行传输。
ssh-copy-id -i [公钥文件] [用户@域名/IP]  #ssh-copy-id命令
scp [文件] [用户@域名/IP]:[目录]  #scp命令

image-20221017221916710
3. 最后使用ssh登录作验证

image-20221017222506452

相关文章:

  • Spring Boot | Spring Security ( SpringBoot安全管理 )、Spring Security中 的 “自定义用户认证“
  • Llama 3 安装使用方法
  • LeetCode 150. 逆波兰表达式求值
  • 浅谈操作系统中的重要概念——线程
  • java:SpringBootWeb请求响应
  • error while loading shared libraries: libstdc++.so.6
  • android中常见的面试题,讲的太透彻了
  • 省市区街道/乡镇四级联动vue3
  • 【算法与数据结构】回溯算法、贪心算法、动态规划、图论(笔记三)
  • 代码随想录算法训练营第二十四天| 77. 组合
  • 前端学习---- 前端HTML基本元素的介绍
  • 第102讲:MySQL多实例与Mycat分布式读写分离的架构实践
  • 软考:信息安全工程师4(系统安全)
  • Hadoop中的Yarn的Tool接口案例、Yarn 案例实操(四)
  • 【C++】STL——string(两万字详解)
  • 浅谈Linux下的redis攻击
  • 【C++】类和对象(中)(万字详解)
  • CockroachDB架构-存储层
  • 【DDR3 控制器设计】(1)MIG IP 核的详解与配置
  • 牛客网专项练习30天Pytnon篇第26天
  • 【Golang开发面经】得物(两轮技术面)
  • Linux vmalloc原理与实现
  • 李沐论文精读系列二:Vision Transformer、MAE、MoCo、Swin-Transformer(持续更新 )
  • 【我想找一份实习】算法篇
  • uniapp 微信小程序和H5的弹窗滚动穿透解决
  • linux安装tomcat、mysql、redis、宝塔,rpm命令
  • Linux命令老是记不住?一篇文章帮你解决。Linux常用命令汇总
  • 接口测试用例生成工具介绍及应用
  • 【axios】二次封装——避免重复发送请求
  • Maven 高级 5 多环境配置与应用 5.1 多环境开发
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945
  • 【图像分割】基于电磁算法优化多级阈值实现图像分割附matlab代码