Linux ssh 实现远程免密登录

news2024/11/14 0:58:28

一、背景

        我搭建了一个 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.coloradmin.cn/o/1360822.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Oracle文件自动“减肥”记

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

案例分析——如何优化跨境直播网络

跨境直播 风口已至 这些年越来越多商家加入直播带货行列,各种玩法日渐成熟。而TikTok作为当前国外最火爆的直播平台,不少卖家都会定期做TikTok直播引流,但时常会面临着远程访问导致直播画面模糊、卡顿掉线、延迟高,甚至可能限流黑…

目标检测-One Stage-YOLOv2

文章目录 前言一、YOLOv2的网络结构和流程二、YOLOv2的创新点预处理网络结构训练 总结 前言 根据前文目标检测-One Stage-YOLOv1可以看出YOLOv1的主要缺点是: 和Fast-CNN相比,速度快,但精度下降。(边框回归不加限制)…

数据结构第六弹---带头双向循环链表

双向循环链表 1、带头双向循环链表概念2、带头双向循环链表的优势3、带头双向循环链表的实现3.1、头文件包含和结构定义3.2、创建新结点3.3、打印3.4、初始化3.5、销毁3.6、尾插3.7、头插3.8、头删3.9、尾删3.10、查找3.11、在pos之前插入3.12、删除pos位置3.13、判断是否为空3…

苦学golang半年,写了一款web服务器

苦学golang半年,写了一款web服务器 文章目录 苦学golang半年,写了一款web服务器example 项目地址:https://github.com/fengyuan-liang/jet-web-fasthttp 苦学golang半年,写了一款web服务器,里面包含笔者各种工程实践&a…

“火火的”动态(myBlink of csdn)

集结我的人气Blink索引列表,Python脚本自动生成于2024年01月06日。 生成本篇笔记Html超文本的Python脚本源码地址:#codes (本笔记适合初通Python,熟悉六大基本数据类型(str字符串、int整型、float浮点型、list列表、tuple元组、set集合、dict…

【C程序设计】C数组

C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。 数组的声明并不是声明一个个单独的变量,比如 runoob0、runoob1、...、runoob99,而…

[SwiftUI]工程最低适配iOS13

问题: 新建工程,选择最低支持iOS13报错: main() is only available in iOS 14.0 or newer Scene is only available in iOS 14.0 or newer WindowGroup is only available in iOS 14.0 or newer 解决: 注释掉上面代码&#x…

栈的数据结构实验报告

一、实验目的: 1、理解栈的定义; 2、利用栈处理实际问题。 二、实验内容(实验题目与说明) 利用栈实现数据的分类,将输入的整数以奇偶为标准分别存放到两个栈中,并最终从栈1和栈2输出偶数和奇数序列。 …

国内代理IP推荐!

国内代理IP,日更新50w IP,全国200城市,可利用率高达99%。提供HTTP/HTTPS/SOCKS5协议,满足数据采集、爬虫业务需求。丰富的api参数选择,可自由选择时效地区等,按需求过滤重复资源。低延迟,提供丰…

STM32学习笔记二十一:WS2812制作像素游戏屏-飞行射击游戏(11)探索游戏脚本

还记得上次在第十七章中为BOSS创建的路径动画吧。我们写了一大坨的代码来描述BOSS的运动路径,但凡是写过几年代码的人都不会干出这样的事情。-_-! 没办法,谁叫那时候还没有脚本呢。这章就来补齐这块短板。 脚本属于配置化的一种,你可以把脚…

XSKY SDS 产品率先获得 OceanBase V4 新版本认证

近日,北京奥星贝斯科技有限公司(简称:OceanBase)与北京星辰天合科技股份有限公司(简称:XSKY 星辰天合)顺利完成产品兼容性认证。 XSKY 的高性能全闪存储以及混闪存储,与 OceanBase V…

LayaAir3最稳定的版本来了,3.0.11或将成为3.0分支的终结版

在LayaAir1与LayaAir2的发版策略中,存在一个BUG,就是永远都在新的版本上修复上一个版本的问题。这就导致了在高速迭代的过程中,很难有一个持续维护的小版本分支。也就是说直到引擎停止了功能更新的最后几个版本,才能真正步入稳定版…

leetcode算法题之递归--深度优先搜索总结

文章目录 1.全排列2.子集 1.全排列 全排列 class Solution {vector<vector<int>> ret;vector<int> path;bool check[7];//标记nums数组某个下标是否已访问&#xff0c;剪枝使用 public:vector<vector<int>> permute(vector<int>& n…

工智能基础知识总结-- 什么是Seq2Seq

什么是Seq2Seq Seq2Seq模型,全称Sequence to sequence,由Encoder和Decoder两个部分组成,每部分都是一个RNNCell(RNN、LSTM、GRU等)结构。Encoder将一个序列编码为一个固定长度的语义向量,Decoder将该语义向量解码为另一个序列。输入序列和输出序列都可以是不定长序列。 S…

124基于matlab的禁忌搜索算法和蚁群优化算法优化TSP路径

基于matlab的禁忌搜索算法和蚁群优化算法优化TSP路径&#xff0c;动态输出路径规划过程及输出最小距离。数据可更换自己的&#xff0c;程序已调通&#xff0c;可直接运行。需要直接拍下&#xff0c;拍下后发邮箱。标价为程序价格&#xff0c;不包含售后。程序保证可直接运行。 …

18款Visual Studio实用插件(更新)

前言 俗话说的好工欲善其事必先利其器&#xff0c;安装一些Visual Studio实用插件对自己日常的开发和工作效率能够大大的提升&#xff0c;避免996从选一款好的IDE实用插件开始。以下是我认为比较实用的Visual Studio插件希望对大家有用&#xff0c;大家有更好的插件推荐可在文…

引导过程的解析以及如何利用systemd去管理nginx

bios加电自检------mbr--------grub-------加载内核文件------启动第一个进程 bios的主要作用&#xff1a;检测硬件是否正常&#xff0c;然后根据bios中的启动项设置&#xff0c;去找内核文件 boot开机启动项顺序&#xff0c;你可以把内核文件放在何处&#xff1f; 1.硬盘 …

什么是谐波减速机?日本Harmonic哈默纳科谐波减速机有哪些优点?

一、什么是谐波减速机&#xff1f; 谐波减速装置最早期被叫做“strain wave gearing”&#xff0c;直译过来为“应变波齿轮”。其后被HarmonicDrive Systems 公司大规模商业实用化后&#xff0c;经过二次翻译后&#xff0c;中文名称才将其称为“谐波齿轮传动”。 谐波减速机是…