SSH 无密登录配置流程
一、免密登录原理
非对称加密: 由于对称加密的存在弊端,就产生了非对称加密,非对称加密中有两个密钥:公钥和私钥。公钥由私钥产生,但却无法推算出私钥;公钥加密后的密文,只能通过对应的私钥来解密。

【1】在A服务器使用 ssh-keygen生成一对密钥:公钥+私钥;
【2】将A服务器公钥追加到B服务器的 authorized_keys 文件中,完成公钥认证操作;
【3】认证完成后,A服务器向B服务器发起请求,并传递公钥到服务端;
【4】B服务端检索 authorized_keys 文件,确认该公钥是否存在;
【5】如果存在该公钥,则生成随机数R,并用公钥来进行加密,生成公钥加密字符串 pubKey®;并将公钥加密字符串传递给A服务器;
【6】A服务器使用私钥解密公钥加密字符串,得到R;
【7】A服务器和客户端通信时会产生一个会话ID(sessionKey),用MD5对R和SessionKey进行加密,生成摘要(即MD5加密字符串)
【8】A服务器将生成的MD5加密字符串传给B服务器;
【9】服务端同样生成 MD5(R,SessionKey)加密字符串;
【10】如果客户端传来的加密字符串等于服务端自身生成的加密字符串,则认证成功;
【11】此时不用输入密码,即完成建连,可以开始远程执行shell命令了
二、操作
【1】Hadoop1 中生成公钥和私钥,过程中敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
[root@hadoop1 ~]# ssh-keygen -t rsa
【2】将Hadoop1 中的公钥拷贝到要免密登录的目标机器上 Hadoop2 中
[root@hadoop1 ~]# ssh-copy-id hadoop2
注意:如果有多个用户,还需要在Hadoop2上采用其他账号,配置一下无密登录到 hadoop2
【3】当我们链接本机 Hadoop1 的时候发现也要输入密码,所以通常我们对本机也会进行配置。Hadoop2重复1中的操作。
[root@hadoop1 ~]# ssh-copy-id hadoop1
三、.ssh文件夹下(~/.ssh)的文件功能解释
| known_hosts | 记录 ssh访问过计算机的公钥(public key) |
|---|---|
| id_rsa | 生成的私钥 |
| id_rsa.pub | 生成的公钥 |
| authorized_keys | 存放授权过得无密登录服务器公钥 |
相关文章:
SSH 无密登录配置流程
一、免密登录原理 非对称加密: 由于对称加密的存在弊端,就产生了非对称加密,非对称加密中有两个密钥:公钥和私钥。公钥由私钥产生,但却无法推算出私钥;公钥加密后的密文,只能通过对应的私钥来解…...
Python自动化运维 系统基础信息模块
1.系统信息的收集 系统信息的收集,对于服务质量的把控,服务的监控等来说是非常重要的组成部分,甚至是核心的基础支撑部分。我们可以通过大量的核心指标数据,结合对应的检测体系,快速的发现异常现象的苗头,进…...
如何安装和配置Monit
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 关于 Monit Monit 是一个有用的程序,可以自动监控和管理服务器程序,以确保它们不仅保持在线,而且文…...
【redis】redis分片集群基础知识
1、基本概念 1.1定义 分片:数据按照某种规则(比如哈希)被分割成多个片段(或分片),每个片段被称为一个槽(slot)。槽是Redis分片集群中数据的基本单元。节点:Redis分片集…...
Python 面试【★★★★】
欢迎莅临我的博客 💝💝💝,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...
Knife4j 2.2.X 版本 swagger彻底禁用
官方文档配置权限:https://doc.xiaominfo.com/v2/documentation/accessControl.html#_3-5-1-%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E5%B1%8F%E8%94%BD%E8%B5%84%E6%BA%90 通常有时候我们碰到的问题如下: 在开发Knife4j功能时,同很多开发者经常讨论的问…...
linux下mysql的定时备份
备份是容灾的基础,是指为了防止系统出现操作或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其他的存储介质的过程为什么备份 硬件故障软件故障误操作病毒入侵保留历史记录灾难性事件 存储介质 光盘磁带硬盘磁盘阵列DAS:直接…...
【13】地址-比特币区块链的地址
1. 比特币区块链的地址 这就是一个真实的比特币地址:1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa。这是史上第一个比特币地址,据说属于中本聪。 比特币地址是完全公开的,如果你想要给某个人发送币,只需要知道他的地址就可以了。实际上,所谓的地址,只不过是将公钥表示成人类可读…...
【数据结构】数据结构前置知识
这里写目录标题 基本概念与术语数据数据元素数据项数据对象数据结构 逻辑结构和物理结构物理结构顺序存储结构链式存储结构 逻辑结构集合结构线性结构树形结构图形结构 算法时间复杂度和空间复杂度大O的渐进表示法时间复杂度常数阶线性阶对数阶平方阶常见时间复杂度 空间复杂度…...
企业数据挖掘平台产品特色及合作案例介绍
泰迪企业数据挖掘平台是一款通用的、企业级、智能化的数据分析模型构建与数据应用场景设计工具,能够一体化地完成数据集成、模型构建、模型发布,为数据分析、探索、服务流程提供支撑,提供完整的数据探索、多数据源接入、特征处理、模型搭建、…...
C++初学者指南-3.自定义类型(第一部分)-基本自定义类型/类
C初学者指南-3.自定义类型(第一部分)-基本自定义类型/类 文章目录 C初学者指南-3.自定义类型(第一部分)-基本自定义类型/类1.类型种类(简化)2.为什么选择自定义类型?单向计数器提升序列 3.限制成员访问成员函数公共(public) vs. 私有(private…...
iOS之如何创建.framework静态库
番外:想要查看如何创建.a静态库可前往看我iOS之如何创建.a静态库-CSDN博客这篇文章。 一、创建framework项目 创建framework工程要选择iOS --> Cocoa Touch Framework输入项目名称PrintFramework也是编译生成的framework的名称。framework的名称也可以以后在项目…...
C程序设计谭浩强第五版
程序习题 第一章1、第5题2、第6题 第三章1、第2题2、第2题3、第3题4、第4题Tips 第一章 1、第5题 编写一个C程序,运行时输出以下图形: #include <stdio.h> int main() {for (int i 0; i < 4; i) // 输出4行循环控制{for (int j 0; j < i; j) //第几行就输出几…...
石油化工厂为什么要用专业防爆手机?
防爆手机之所以必须使用专业设计的产品,主要是出于安全考虑,以防止在易燃易爆环境中因手机使用不当引发爆炸事故。以下几点详细解释了使用专业化工防爆手机的必要性: 本质安全设计:顶坚专业防爆手机采用了本质安全(本安…...
文本生成sql模型(PipableAI/pip-sql-1.3b)
安装环境 pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 pip install transformers 代码 question "What are the email address, town and county of the customers who are of the least common gender?"sc…...
机器学习中的数学底蕴与设计模式
在说机器学习设计模式之前,想多说几句,在进入软件行业最初的10年,那时候耳熟能详的基本就是多线程编程,互斥同步锁,设计模式,OOA,OOP,常规数组,tree,图的数据…...
【Android面试八股文】性能优化相关面试题:如何查找CPU占用?
文章目录 一、 如何查找CPU的占用问题二、TraceView的使用关于TraceView和Android Studio的Profiler第一步、通过Android studio 打开`Android profiler`第二步、使用步骤第三步、技术说明第四步、CPU占用相关指标说明扩展阅读一、 如何查找CPU的占用问题 在Android开发中,如…...
面试框架一些小结
springcloud的⼯作原理 springcloud由以下⼏个核⼼组件构成: Eureka:各个服务启动时,Eureka Client都会将服务注册到Eureka Server,并且Eureka Client还可以反过来从Eureka Server拉取注册表, 从⽽知道其他服务在哪⾥ …...
c# 往window注册表写入数据后,未写入指定的路径
c# 往window注册表写入数据后,未写入指定的路径 最近在用c#开发一个往注册表写入数据的一个项目,发现将输入写入 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell这个路径时,数据并没写入到这个…...
树莓派4B_OpenCv学习笔记13:OpenCv颜色追踪_程序手动调试HSV色彩空间_检测圆
今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi) 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 版本是4.5.1: OpenCv颜色追踪_程序手动调试HSV色彩空间_检测灰度图中的…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
