SSH免密切换服务器案例-ssh协议(公钥和私钥)

2024-02-05 19:20

本文主要是介绍SSH免密切换服务器案例-ssh协议(公钥和私钥),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

公钥和私钥理解

公钥提供加密,私钥解密,公钥可以共享,私钥不可以。举例公钥相当于锁头,可以给别人用,钥匙相当于私钥,只能开自己发出去的锁头,也就是私钥和公钥成对,私钥只能解密对应的公钥数据。

说明:登录的服务器作为主机1,跳转的作为主机2,实现无密码跳转,需要将主机1的公钥放到主机2的相关目录下(家目录/.ssh/authorized_keys,文件名是固定的,由于公钥文件默认名字是id_rsa.pub,所以可以利用cat id_rsa.pub >>authorized_keys  将公钥写入到此文件中,在移动到相关目录下即可)

一:公钥私钥的建立

命令:ssh-keygen,会在家目录下面创建.ssh/**出公钥和私钥文件,查看生成结果

带pub的是公钥,不带的是私钥,需要把公钥放到跳转的服务器相关目录下,创建authorized_keys文件,并将公钥内容写入即可

二:ssh命令切换服务器

正常切换时候提示需要输入密码

三:通过公钥设置ssh免密切换服务器

1)传输root用户将第一步生成的公钥传输到用户wdf上的家目录上,利用scp命令

注意:此时传输还是需输入密码的,切换wdf查看文件是否传输过来了

可以看到文件已经过来了,我是开两个端口,不通用户登录root和wdf

2)在wdf服务器利用ssh-keygen生成公钥私钥,个人感觉可以创建相关目录也可以,不过方便双向切换或者和其他主机无密码切换还是生成一下,以后维护也方便

输入命令,一致回车就可以了,主要目录在这里,下图

3)修改root用户传过来的公钥,将内容写入到authorized_keys中,移动到用户wdf家目录下.ssh目录下,设置权限644,这个可以参考root公钥权限

生成authorized_keys文件,并mv到指定目录下

4)从root切换wdf-通过ssh切换,正常应该是不通机器测试,不过条件有限,原理都一样。

再次测试如下图

还是需要输入密码,查看权限不是644(664),设置下权限,重新测试

修改权限后如图

成功跳转

失败点:由于没修改authorized_keys权限为644导致测试失败,其他都正常设置即可。

------------------------------------------------------------------------------------------------------------------------

更简单的方法就是通过ssh-copy-id wdf@localhost命令可以直接完成上面所有操作,感兴趣的朋友可以测试下

这篇关于SSH免密切换服务器案例-ssh协议(公钥和私钥)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/681905

相关文章

Linux中的自定义协议+序列反序列化用法

《Linux中的自定义协议+序列反序列化用法》文章探讨网络程序在应用层的实现,涉及TCP协议的数据传输机制、结构化数据的序列化与反序列化方法,以及通过JSON和自定义协议构建网络计算器的思路,强调分层... 目录一,再次理解协议二,序列化和反序列化三,实现网络计算器3.1 日志文件3.2Socket.hpp

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

RabbitMQ消费端单线程与多线程案例讲解

《RabbitMQ消费端单线程与多线程案例讲解》文章解析RabbitMQ消费端单线程与多线程处理机制,说明concurrency控制消费者数量,max-concurrency控制最大线程数,prefe... 目录 一、基础概念详细解释:举个例子:✅ 单消费者 + 单线程消费❌ 单消费者 + 多线程消费❌ 多

SpringBoot改造MCP服务器的详细说明(StreamableHTTP 类型)

《SpringBoot改造MCP服务器的详细说明(StreamableHTTP类型)》本文介绍了SpringBoot如何实现MCPStreamableHTTP服务器,并且使用CherryStudio... 目录SpringBoot改造MCP服务器(StreamableHTTP)1 项目说明2 使用说明2.1

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具