谈谈ssh-keygen进行多host配置及使用

背景

传统的Telnet、FTP协议都是使用明文传输数据,存在一定的安全风险,如果传输数据被截取,可能造成数据泄露风险,尤其对于敏感数据,泄露造成的损失无法估计。最近公司、github等平台都不再支持http方式进行代码下载工作,需要通过ssh模式进行数据传输。

什么是ssh

是一种网络安全协议,对传输的数据进行加密和安全验证,保证数据的安全。

为什么使用ssh

如果数据裸着在网上跑,被劫持的话只能任人摆布,风险无限大,可能造成个人信息泄露、公司机密泄露;

ssh-keygen的基本使用

基本配置参数

参数说明备注
-t指定算法类型常见的算法包括:rsa、dsa、ecdsa、ed25519
-f指定新生成的秘钥对的文件名称例如:-f ~/.ssh/test,生成的公钥、私钥名称为test.pub、test
-c生成秘钥对的备注信息例如:-c ‘给github使用的秘钥对’

注:详细配置参数可以参考文章最后的文档链接。

完整的使用示例

现在开始进入演示场景了,各位可以看好。。

第一幕:github要使用ssh协议传输

生成需要的秘钥对

假设要使用ed25519这个协议算法,那可以使用"-t"这个参数指定协议。为了防止本地测试时新生成的密钥对干扰已生成的,使用"-f"这个参数指定新生成的秘钥对放到测试文件中。
github生成

上述截图的核心命令为:ssh-keygen -t ed25519 -f ~/sshtest/id_ed25519
通过执行上述命令,生成了一个私钥和公钥文件:id_ed25519、id_ed25519.pub。

将生成的公钥配置到github上

上传公钥对
经过上述的两个步骤,就可以通过ssh跟github交互了

第二幕:公司私服也要切到ssh协议传输

注:为了防止新生成的ssh秘钥对跟分配给github的秘钥对冲突,一定要指定一个不同的文件名,防止把之前的秘钥对覆盖了

生成新的秘钥对

如果公司要求也用ed25519加密算法,同时为了防止新生成的秘钥对覆盖之前的秘钥对,需要指定一个不同的文件名。
ssh-keygen -t ed25519 -f ~/sshtest/company_ed25519
公司密钥对生成

如上图所示,-t指定的算法跟github密钥对算法是一样的,但是-f指定的文件路径是有所区别。在途中可以看到生成了两个秘钥对。

将新生成的公钥配置到服务端上

按照github类似的操作,在公司的私服上配置新生成的公钥即可。

第三幕:请求ssh连接时,到底选择哪一个秘钥对呢?

当本地存在多个 SSH 私钥对时,SSH 客户端(如 OpenSSH)会按照以下顺序尝试使用这些密钥对进行连接:

  1. 命令行指定的密钥:如果你在ssh命令中使用-i选项指定了某个私钥文件,SSH 客户端将首先尝试使用该密钥进行连接。

  2. 默认的密钥文件:如果没有在命令行中指定密钥,SSH 客户端会检查以下默认的密钥文件(以此顺序):
    ~/.ssh/id_rsa(RSA)
    ~/.ssh/id_dsa(DSA)
    ~/.ssh/id_ecdsa(ECDSA)
    ~/.ssh/id_ed25519(Ed25519)

  3. .ssh/config文件中的配置:如果在~/.ssh/config文件中为特定主机配置了IdentityFile选项,SSH 客户端将使用该文件指定的私钥进行连接。

  4. 其他可用的密钥:如果以上步骤都没有找到合适的密钥,SSH 客户端将尝试使用其他在~/.ssh/目录下找到的私钥文件进行连接。

如果 SSH 客户端找到了多个可能的密钥,它将依次尝试每个密钥,直到找到一个可以成功进行身份验证的密钥或尝试所有密钥都失败。为了避免这种尝试过程,你可以在~/.ssh/config文件中明确指定要使用的私钥文件。

注:通过在~/.ssh/config这个文件中指定每一个host使用哪一个密钥对是一个一劳永逸的写法。

参考文档

1、官方文档:https://www.ssh.com/academy/ssh/keygen
2、ssh介绍说明: https://info.support.huawei.com/info-finder/encyclopedia/zh/SSH.html

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

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

相关文章

谷粒商城-高级篇-认证服务

1、环境搭建 1、创建gulimall-auth-server模块 2、导入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schem…

独显装完ubuntu后启动黑屏显示/dev/sda:clean files blocks的解决方案

解决方案如下&#xff1a; 选中Ubuntu按E键 在编辑界面倒数第2行的linux那行&#xff08;后面有quiet splash选项&#xff09;的最后添加nomodeset 然后按F10保存重启 然后管理员权限打开/etc/modprobe.d/blacklist.conf&#xff0c;在文件末尾添加&#xff1a; blacklist…

ArcGIS 地理信息系统 任意文件读取漏洞复现

0x01 产品简介 ArcGIS是由美国Esri公司研发的地理信息系统(GIS)软件,它整合了数据库、软件工程、人工智能、网络技术、云计算等主流的IT技术,旨在为用户提供一套完整的、开放的企业级GIS解决方案,它包含了一套带有用户界面组件的Windows桌面应用。可以实现从简单到复杂的…

Linux 系统结构

Linux系统一般有4个主要部分&#xff1a;内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构&#xff0c;它们使得用户可以运行程序、管理文件并使用系统。 1. linux内核 内核是操作系统的核心&#xff0c;具有很多最基本功能&#xff0c;它…

SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”

SLF4J常见问题 1、SLF4J简介2、SLF4J实现原理3、SLF4J常见问题 1、SLF4J简介 SLF4J&#xff08;Simple Logging Facade for Java&#xff09;是一个为Java程序提供日志输出的统一接口&#xff0c;并不具备具体的日志实现方案&#xff0c;类似JDBC&#xff0c;SLF4J只做两件事&a…

使用ThorUi

摘要&#xff1a; 官网 今天遇到一个老项目&#xff0c;使用的是ThorUi组件库&#xff01;之前没有用过这组件库&#xff0c;所以记录一下不同框架是使用情况&#xff01; ThorUI 是一个基于 Thorium 的 UI 框架&#xff0c;用于构建跨平台的桌面应用程序。如果你打算使用 Thor…

OceanBase中,如何解读 obdiag 收集的火焰图 【DBA早下班系列】

1. 前言 在之前的文章 遇到性能问题&#xff0c;如何给OceanBase“拍CT“&#xff08;火焰图与扁鹊图&#xff09;中&#xff0c;分享了obdiag 快速收集火焰图的方法&#xff0c;那么&#xff0c;紧接着的问题便是&#xff1a;收集到火焰图和扁鹊图之后&#xff0c;该如何解读…

Day41 | 动态规划 :完全背包应用 完全平方数单词拆分(类比爬楼梯)

Day41 | 动态规划 &#xff1a;完全背包应用 完全平方数&&单词拆分&#xff08;类比爬楼梯&#xff09; 动态规划应该如何学习&#xff1f;-CSDN博客 01背包模板 | 学习总结-CSDN博客 完全背包模板总结-CSDN博客 难点&#xff1a; 代码都不难写&#xff0c;如何想…

《 C++ 修炼全景指南:十九 》想懂数据库?深入 B 树的世界,揭示高效存储背后的逻辑

摘要 本文深入探讨了 B 树的原理、操作、性能优化及其实际应用。B 树作为一种平衡多路树结构&#xff0c;因其高效的查找、插入和删除操作广泛应用于数据库与文件系统中。文章首先介绍了 B 树的定义与性质&#xff0c;并详细阐述了节点分裂、合并等核心操作的实现方法。接着&a…

选择小练习

条件语句 if 条件语句&#xff0c;也叫作选择语句、判断语句。根绝特定条件判断是否成立&#xff0c;执行不同的语句段。简单来说&#xff0c;满足条件执行&#xff0c;不满足不执行。 条件语句是使用关键字 if 做判断&#xff0c;根据不同情况结合不同的关键字else 或者 eli…

单片机串口接收状态机STM32

单片机串口接收状态机stm32 前言 项目的芯片stm32转国产&#xff0c;国产芯片的串口DMA接收功能测试不通过&#xff0c;所以要由原本很容易配置的串口空闲中断触发DMA接收数据的方式转为串口逐字节接收的状态机接收数据 两种方式各有优劣&#xff0c;不过我的芯片已经主频跑…

BAAI 的 Aquila-VL-2B-llava-qwen: 促进视觉语言理解

简介 在人工智能领域&#xff0c;北京人工智能学会&#xff08;BAAI&#xff09;做出了重要贡献&#xff1a; 在人工智能领域&#xff0c;北京人工智能研究所&#xff08;BAAI&#xff09;开发的 Aquila-VL-2B-llava-qwen 模型做出了重大贡献。这一创新模型建立在 LLava-one-v…

测试实项中的偶必现难测bug--短信触发H5拒绝行为

问题描述: 企业邀请其他人加入团队,发送邀请短信给对方,对方通过短信链接跳转到H5页面,输入手机后,点击发送验证码,前提是短信通知验证弹窗需要打开,收到短信验证码后,点击一键代入,会触发拒绝加入行为。 需求: 由于我们的邀请链接是一次性的,一旦有用户确认加入或…

MCU的OTA升级(未完-持续更新)

1.术语 ISP : In-System Programming 在系统编程&#xff0c;是一种通过MCU&#xff08;微控制器单元&#xff09;上的内置引导程序&#xff08;BootLoader&#xff09;来实现对芯片内部存储器&#xff08;如Flash&#xff09;进行编程的技术。 华大目前对应的ISP IAP&…

即将盛大启幕“2025南京软件产业博览会·南京软博会”

在今年的南京软博会上&#xff0c;科技创新的浪潮再次席卷了整个会展现场&#xff0c;来自全球的软件产业精英们汇聚一堂&#xff0c;共同见证了软件产业的最新成果与未来趋势。随着云计算、大数据、人工智能等新兴技术的蓬勃发展&#xff0c;软件产业正站在一个前所未有的历史…

npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。

npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1&#xff0c;因为在此系统上禁止运行脚本。有关详细信息&#xff0c;请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Exe cution_Policies。 所在位置 行:1 字符: 1 npm install ~~~ CategoryInf…

网管平台(进阶篇):如何正确的管理网络设备?

网络设备作为构建计算机网络的重要基石&#xff0c;扮演着数据传输、连接和管理的关键角色。从交换机、路由器到防火墙、网关&#xff0c;各类网络设备共同协作&#xff0c;形成了高效、稳定的网络系统。本文将详细介绍网络设备的种类&#xff0c;并探讨如何正确管理这些设备&a…

【Linux】【Vim】多文件编辑与分屏

多文件编辑 编辑另一个文件文件列表分屏vimdiff文件跳转 编辑另一个文件 除了为每一个要编辑的文件运行一次 Vim 之外&#xff0c;还可以在当前 Vim 中开始编辑另一个文件。 :edit foo.txtVim 会关闭当前正在编辑的文件打开指定的新文件进行编辑。如果当前文件还有未存盘的内容…

从零开始训练一个大语言模型需要多少天?

一&#xff0c;前言 在AI领域&#xff0c;训练一个大型语言模型&#xff08;LLM&#xff09;是一个耗时且复杂的过程。几乎每个做大型语言模型&#xff08;LLM&#xff09;训练的人都会被问到&#xff1a;“从零开始&#xff0c;训练大语言模型需要多久和花多少钱&#xff1f;”…

潮玩宇宙方块兽系统开发:可定制UI与多种游戏内嵌助力个性化体验

潮玩宇宙方块兽系统开发正在推动潮玩与游戏的融合&#xff0c;通过个性化的UI设计和多游戏内嵌模式&#xff0c;为用户带来了独一无二的体验。本文将从可定制UI、多游戏内嵌功能以及系统实现等方面入手&#xff0c;探讨如何构建一个极具吸引力的潮玩宇宙方块兽系统。 一、可定制…