Linux ssh 实现远程免密登录

一、背景

        我搭建了一个 zookeeper 集群,写了一个 shell 脚本来控制集群的启动和关闭,但是我发现每次我执行 shell 脚本的时候,都需要我输入各个服务器的密码才可以运行,感觉很麻烦。shell 脚本里面连接其他服务器用的就是 ssh 的方式,所以这里研究下如何使用 ssh 的方式进行免密登录,以保证我的 shell 脚本不用每次都输入密码。

二、现象演示

        现有的服务器如下:

ip 地址主机名称
192.168.229.166mylinux04
192.168.229.167mylinux05

        我们先来演示下使用 ssh 的方式连接其他的服务器,可以看到,是需要输入密码的。

ssh 192.168.229.167

三、实现免密登录方式一

3.1 生成公钥和私钥

        执行下面的命令,生成公钥和私钥

ssh-keygen

        公钥的存储路径为:/root/.ssh/id_rsa.pub,私钥的存储路径为:/root/.ssh/id_rsa

3.2 拷贝公钥到目标服务器

        执行下面的命令,将 mylinux04 主机的公钥拷贝到目标服务器上 

ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.229.167

        此时需要输入一次目标服务器的密码,如下图 

3.3 测试免密登录

        完成上述步骤后,接下来我们再来测试下登录目标服务器是否还需要密码,执行下面的命令

ssh 192.168.229.167

        可以看到,直接就连接成功了。 

四、实现免密登录方式二

4.1 生成公钥和私钥

        执行下面的命令,生成公钥和私钥

ssh-keygen

        公钥的存储路径为:/root/.ssh/id_rsa.pub,私钥的存储路径为:/root/.ssh/id_rsa

4.2 拷贝公钥到目标服务器

        1、执行下面的命令复制公钥信息

vim /root/.ssh/id_rsa.pub

        公钥信息如下:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDED2WiTbrOy+JVDeWJtqRfFoUvwleRtWkO5yRnH+Ne3lgmR7f/svJudQJOPaDnbn7opfAn9oC9ZjUs5IYR1RKM2ciwmTRvR7bGFVucR50z8oYXQfXoU1kI8qaqf7Q1Zb1E7UxlHWde/g28m/zg5vR4BfeXWVoLEkayKOB7FYmrnNozrAvtWQLDjXCFIgzAt1egwVRqkftLClcr3FmWJmjBOt6iq3o/nKk23wYMoFXCb/RDq8pvjNLgNk/PuizjIe7cb9RyXq4BVEy+IAIsl4TCsropSZxKrQF7OGMF9x9shm7RbGokpm21VQE2P/JJ/EFVvedwuV0PunLWpaq07Iyz root@mycentos04

        2、将公钥存放到目标服务器的这个的 /root/.ssh/authorized_keys 文件中。

vim  /root/.ssh/authorized_keys

        如果没有这个文件,则执行下面的语句

# 创建文件
touch /root/.ssh/authorized_keys# 赋权,别给 777,否则变成可执行文件就失效了
chmod 600 /root/.ssh/authorized_keys

4.3 测试免密登录

        可以看到,直接就连接成功了。 

五、自己免密登录自己

        服务器使用 ssh 命令访问自己,也是需要密码的,如下所示,那该如何解决呢?

5.1 生成公钥和私钥

        执行下面的命令,生成公钥和私钥

ssh-keygen

        公钥的存储路径为:/root/.ssh/id_rsa.pub,私钥的存储路径为:/root/.ssh/id_rsa

5.2 拷贝公钥到自己的服务器

         1、执行下面的命令复制公钥信息

vim /root/.ssh/id_rsa.pub

        公钥信息如下:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDED2WiTbrOy+JVDeWJtqRfFoUvwleRtWkO5yRnH+Ne3lgmR7f/svJudQJOPaDnbn7opfAn9oC9ZjUs5IYR1RKM2ciwmTRvR7bGFVucR50z8oYXQfXoU1kI8qaqf7Q1Zb1E7UxlHWde/g28m/zg5vR4BfeXWVoLEkayKOB7FYmrnNozrAvtWQLDjXCFIgzAt1egwVRqkftLClcr3FmWJmjBOt6iq3o/nKk23wYMoFXCb/RDq8pvjNLgNk/PuizjIe7cb9RyXq4BVEy+IAIsl4TCsropSZxKrQF7OGMF9x9shm7RbGokpm21VQE2P/JJ/EFVvedwuV0PunLWpaq07Iyz root@mycentos04

        2、将公钥存放到自己服务器的这个的 /root/.ssh/authorized_keys 文件中。

vim  /root/.ssh/authorized_keys

        如果没有这个文件,则执行下面的语句

# 创建文件
touch /root/.ssh/authorized_keys# 赋权,别给 777,否则变成可执行文件就失效了
chmod 600 /root/.ssh/authorized_keys

5.3 测试免密登录

        可以看到,直接就连接成功了。 

参考博客:如何设置SSH免密登录,只需两步(小白也能学会)_vagranrt设置ssh免密-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/231596.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RocketMQ MQClientInstance、生产者实例启动源码分析

🔭 嗨,您好 👋 我是 vnjohn,在互联网企业担任 Java 开发,CSDN 优质创作者 📖 推荐专栏:Spring、MySQL、Nacos、Java,后续其他专栏会持续优化更新迭代 🌲文章所在专栏&…

JVM篇:直接内存

直接内存 直接内存并不是JVM的内存结构,直接内存是操作系统的内存,Java本身并不能对操作系统的内存进行操作,而是通过调用本地方法。直接内存常用于NIO作为缓冲区存在,分配成本较高但是读写性能好,并且不受JVM内存回收…

有网友希望我推荐几个创建产品手册工具,这不就来了!

上次我有说到,企业应该充分认识到产品手册的重要性,并采取有效的策略和措施来制作和传播高质量的产品手册,以提升品牌知名度和市场份额。后台有网友问我除了设计排版的那种产品手册工具,还有什么方式可以去做产品手册。今天就介绍…

Verifiable Credentials可验证证书 2023 终极指南

1. 引言 Dock公司为去中心化数字身份领域的先驱者,其自2017年以来,已知专注于构建前沿的可验证证书(Verifiable Credentials)技术。本文将阐述何为电子证书、电子证书工作原理、以及其对组合和个人的重要性。 伪造实物证书和数字…

​结构体数组

1. 结构体的声明 1.1 结构体的基础知识 结构是一些值的集合,这些值被称为成员变量。结构的每个成员可以是不同类型的变量。 1.2 结构的声明 struct tag {member - list; }variable-list; 例:描述一个人的信息:名字电话性别身高 //声明的…

05、Kafka ------ CMAK 各个功能的作用解释(主题和分区 详解,用命令行和图形界面创建主题和查看主题)

目录 CMAK 各个功能的作用解释(主题)★ 主题★ 分区★ 创建主题:★ 列出和查看主题 CMAK 各个功能的作用解释(主题) ★ 主题 Kafka 主题虽然也叫 topic,但它和 Pub-Sub 消息模型中 topic 主题及 AMQP 的 t…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)创建一个TcpConnection实例 以及 接收客户端数据

#CSDN 年度征文|回顾 2023,赢专属铭牌等定制奖品# 一、主线程反应堆模型的事件添加和处理详解 >>服务器和客户端建立连接和通信流程: 基于多反应堆模型的服务器结构图,这主要是一个TcpServer,关于HttpServer,…

4个原创技术文档,从Excel到MySQL到Python

2023马上就要结束了,回首这一年的工作和努力,我感到非常欣慰和自豪。在这段时间里,我专注于撰写原创技术文档,致力于为大家提供有价值的内容。 这四篇原创技术文档是我精心编写的,每一篇都经过了深入研究和详尽的实践…

HTML5大作业-精致版个人博客空间模板源码

文章目录 1.设计来源1.1 博客主页界面1.2 博主信息界面1.3 我的文章界面1.4 我的相册界面1.5 我的工具界面1.6 我的源码界面1.7 我的日记界面1.8 我的留言板界面1.9 联系博主界面 2.演示效果和结构及源码2.1 效果演示2.2 目录结构2.3 源代码 源码下载 作者:xcLeigh …

普中STM32-PZ6806L开发板(HAL库函数实现-按键扫描)

简介 实现按键扫描, 实现四个按键按下控制灯的亮灭 电路原理图 按键电路原理图 按键与主芯片引脚原理图 其他知识 原理图分析 Key_UP按下会有高电平输入, 所以电路设置应该是默认低电平, 初始化为下拉输入 Key_Left/Right/Down按下会有低电平, 初始化为下拉输…

相机同步遇到的小问题

出现问题 在进行两个相机显示的时候,出现了相机显示不同步的情况,具体情况如下视频所示: 华睿/大华相机左右相机显示不同步 可以见到视频之中,右相机是比左相机更快一点的,但是有的时候就是同步的。我调用的代码是现成…

最新GPT4.0使用教程,AI绘画,ChatFile文档对话总结+GPT语音对话使用,DALL-E3文生图

一、前言 ChatGPT3.5、GPT4.0、GPT语音对话、Midjourney绘画,文档对话总结DALL-E3文生图,相信对大家应该不感到陌生吧?简单来说,GPT-4技术比之前的GPT-3.5相对来说更加智能,会根据用户的要求生成多种内容甚至也可以和…

亚信安慧AntDB数据库:企业核心业务系统数据库升级改造的可靠之选

在近期召开的“2023年国有企业应用场景发布会”上,亚信安慧公司的核心数据库产品AntDB闪耀登场,技术总监北陌先生针对企业核心业务系统数据库升级改造的关键议题发表了深度分享。他从研发、工程实施和运维管理三个维度细致剖析了当前企业在进行数据库升级…

Linux系统安装MySQL

Linux系统安装MySQL 第一步:下载YUM wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm第二步:安装MySQL的YUM 仓库 rpm -ivh mysql57-community-release-el7-11.noarch.rpm第三步:查看MySQL版本 yum repolist …

嵌入式科普(9)vscode无法跳转和恢复默认配置

一、目的/概述 二、解决办法 2.1 使能Intelli Sense Engine 2.2 vscode恢复默认配置 2.3 c/c与clangd冲突 嵌入式科普(9)vscode无法跳转和恢复默认配置 一、目的/概述 1、2024年的第一天突然vscode无法跳转,莫名其妙 2、尝试了各种设置和插件都无效,卸…

【萤火虫系列教程】1/5-Adobe Firefly 注册账号

001-Adobe Firefly 注册账号 AI时代如火如荼,Adobe也不甘落后,于今年3月份发布AI创意生成工具Firefly(中文翻译:萤火虫) Adobe Firefly简介 Adobe Firefly的官方介绍为:Firefly是Adobe产品中新的创意生成…

YOLOv8模型yaml结构图理解(逐层分析)

前言 YOLO-V8(官网地址):https://github.com/ultralytics/ultralytics 一、yolov8配置yaml文件 YOLOv8的配置文件定义了模型的关键参数和结构,包括类别数、模型尺寸、骨架(backbone)和头部(hea…

Geotrust DV通配符证书保护域名数量

Geotrust是一家知名的SSL证书提供商,旗下有多种类型的SSL数字证书,保护网站数据在传输过程中的安全性和完整性,帮助用户确认其网站的安全。通配符SSL证书是Geotrust颁发的一种可以同时保护多个域名站点的SSL证书。今天就随SSL盾小编了解Geotr…

Jmeter 性能 —— 电商系统TPS计算

1、怎么计算得出TPS指标 ①第一个通过运维那边给的生产数据,看一下生产进件有多少,计算得来的,如果没有生产数据,或者不过就看如下的方法 ②第二个就是根据最近一个月的实际访问数据,比如每天调用了多少个接口&#…

将 validator 校验器从 ParameterValidator 中抽离出来

目录 一、前置说明1、总体目录2、相关回顾3、本节目标 二、操作步骤1、项目目录2、代码实现3、测试代码4、日志输出 三、后置说明1、要点小结2、下节准备 一、前置说明 1、总体目录 《 pyparamvalidate 参数校验器,从编码到发布全过程》 2、相关回顾 pyparamval…