使用ssh-key免密登录服务器或免密连接git代码仓库网站

news2024/11/26 1:52:47

ssh登录服务器场景

假设有两台机器,分别是:

源机器:主机A(hostA),ip:198.168.0.1

目标机器:主机B(hostB),ip:192.168.0.2

ssh-key免密连接原理

源机器想要使用ssh-key免密连接到目标机器,就要先了解ssh-key免密连接的原理(见下图)。

ssh-key免密连接前提

理解了上面的原理图,剩下要做的,无非就是两件事:

(一)在源机器创建ssh-key密钥对

(二)将ssh-key中的公钥写入到目标机器的授权密钥文件里

在源机器创建ssh-key密钥对

第(一)件事很简单:要在源机器(即主机A,ip:192.168.0.1)生成ssh-key密钥对,可以通过ssh-keygen指令(windows机器可以使用git客户端的git-bash.exe)。

# 执行 ssh-keygen --help 可以看到生成ssh-key的可选加密算法类型encryprType有:[-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa],其中rsa是默认的加密算法。
# 推荐使用ed25519加密算法,比默认的rsa算法更快更安全,生成的密钥内容也更短。
ssh-keygen -t ed25519

# 执行上面指令后,第一步会提示生成的私钥文件的默认路径(即~/.ssh/id_{encryptionType},默认保存到当前用户的.ssh目录(即~/.ssh/))(如有需要可自行修改路径或文件名),第二第三步是二次确认访问该ssh-key的密码,一般都留空直接回车。

三次回车后,可以在当前用户home目录的.ssh文件夹(即~/.ssh/)找到该ssh-key密钥对:id_ed25519id_ed25519.pub。其中带.pub后缀的为公钥不带.pub后缀的为私钥。这两个文件的内容都是文本,可以编辑和查看。

将ssh-key中的公钥写入到目标机器的授权密钥文件里

第(二)件事也很简单:要完成目标机器(即主机B,ip:192.168.0.2)对源机器(即主机A,ip:192.168.0.1)的ssh-key授权,有两种方式:

方式1、在主机A通过ssh-copy-id指令将本机的公钥文本内容写入到主机B的授权密钥文件里

# 如果主机B的ssh端口是默认的22端口,也可以省去- p 22。如果是要登录主机B的非root用户,则修改为目标用户的用户名。这种方式需要输入目标用户的登录密码。

ssh-copy-id [-p 22] root@192.168.0.2

#输入主机B用户的登录密码后,执行成功则可以在主机B的目标用户home目录的.ssh文件夹(即~/.ssh/)的authorized_keys文件(即授权密钥文件)看到成功追加了主机A的ssh-key公钥(即id_ed25519.pub)的文本内容。

方式2、可以跳过ssh-copy-id指令,直接登录主机B的目标用户,编辑目标用户的授权密钥文件(即~/.ssh/authorized_keys没有该文件则需用touch指令先创建该文件),把主机A的ssh-key公钥(即id_ed25519.pub)的文本内容追加进来。

ssh-key免密登录目标机器

上述两个前提完成了,就可以在源机器(即主机A,ip:192.168.0.1)执行ssh指令通过ssh-key免密登录到目标机器(即主机B,ip:192.168.0.2)。

ssh [-p 22] root@192.168.0.2

如果想在源机器上使用ssh工具(比如XShell、WindTerm、MonaXterm等)通过ssh-key免密登录到目标机器呢?

打开ssh工具,填写目标机器(即主机B,ip:192.168.0.2)的ip、端口、用户名,然后输入登录密码的界面通常都会有另一个选项或选项卡,一般叫做“public key”或“ssh key”之类的。点击该选项或选项卡会要求选择密钥文件或身份文件,选择ssh-key私钥(即id_ed25519文件)然后就可以免密登录了。


ssh-key免密连接git站

现在常用的git代码仓库网站(简称git站)有:gitee、coding、github、gitlab、bitbucket等。

在git站注册了账号后,可以进入账号设置里面添加ssh-key,从而实现你本地机器免密clone、pull、push你在该git网站的仓库(即项目代码)。这个功能利用的就是ssh-key免密连接原理。

git站的这个功能和使用ssh-key免密登录服务器就仅仅是第(二)步的操作方式不同而已:

都是采用的方式2,只不过源机器的ssh-key公钥(即id_ed25519.pub)文本内容不是直接写入到目标机器的目标用户的授权密钥文件里,而是粘贴到git站的账号设置里的ssh-key配置项


 

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

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

相关文章

初识Electron 进程通信

概述 Electron chromium nodejs native API,也就是将node环境和浏览器环境整合到了一起,这样就构成了桌面端(chromium负责渲染、node负责操作系统API等) 流程模型 预加载脚本:运行在浏览器环境下,但是…

小菜家教平台(三):基于SpringBoot+Vue打造一站式学习管理系统

目录 前言 今日进度 详细过程 相关知识点 前言 昨天重构了数据库并实现了登录功能,今天继续进行开发,创作不易,请多多支持~ 今日进度 添加过滤器、实现登出功能、实现用户授权功能校验 详细过程 一、添加过滤器 自定义过滤器作用&…

小新学习k8s第六天之pod详解

一、资源限制 Pod是k8s中的最小的资源管理组件,pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一个进程。k8s中其他大多数组件都是围绕着Pod来进行支撑和扩展Pod功能的,例如,用于管理Pod运行的StatefulSet和Deployment等…

戴尔电脑 Bios 如何进入?Dell Bios 进入 Bios 快捷键是什么?

BIOS(基本输入输出系统)是计算机启动时运行的第一个程序,它负责初始化硬件并加载操作系统。对于戴尔电脑用户来说,有时可能需要进入 BIOS 进行一些特定的设置调整,比如更改启动顺序、调整性能选项或解决硬件兼容性问题…

【UE5】一种老派的假反射做法,可以用于移动端,或对反射的速度、清晰度有需求的地方

没想到大家这篇文章呼声还挺高 这篇文章是对它的详细实现,建议在阅读本篇之前,先浏览一下前面的文章,以便更好地理解和掌握内容。 这种老派的假反射技术,适合用于移动端或对反射效果的速度和清晰度有较高要求的场合。该技术通过一…

MongoDB笔记02-MongoDB基本常用命令

文章目录 一、前言二、数据库操作2.1 选择和创建数据库2.2 数据库的删除 3 集合操作3.1 集合的显式创建3.2 集合的隐式创建3.3 集合的删除 四、文档基本CRUD4.1 文档的插入4.1.1 单个文档插入4.1.2 批量插入 4.2 文档的基本查询4.2.1 查询所有4.2.2 投影查询(Projec…

【启程Golang之旅】深入理解 Protocol Buffers 及其应用

如果你是 Go 语言的开发者,理解如何在 Go 中使用 Protobuf,将帮助你大幅提升数据传输的效率,并实现更高性能的系统设计。 本篇文章将深入探讨 Go 语言中使用 Protobuf 的基础知识、常见应用以及最佳实践,带你一步步了解如何在项目…

最新发布:数智人才成长引擎

数字经济时代 数智人才缺口不断增大 根据公开发布的信息显示,中国,作为全球最大的数字经济体之一,当前数智人才(涵盖了数智人才、数据分析师、AI专家、云计算工程师等关键岗位)的总体缺口已攀升至惊人的2500万至3000…

ServletContext介绍

文章目录 1、ServletContext对象介绍1_方法介绍2_用例分析 2、ServletContainerInitializer1_整体结构2_工作原理3_使用案例 3、Spring案例源码分析1_注册DispatcherServlet2_注册配置类3_SpringServletContainerInitializer 4_总结 ServletContext 表示上下文对象,…

Linux的硬盘管理

硬盘有价,数据无价 1. 硬盘的概念 硬盘是一种计算机的存储设备,通常是由一个或者多个磁性盘片组成。硬盘即可以安装在计算机的内部,也可以外接计算机。 保存数据 数据:操作系统,应用程序,文档多媒体文件…

云渲染与汽车CGI图像技术优势和劣势

在数字时代,云渲染技术以其独特的优势在汽车CGI图像制作中占据了重要地位。云渲染通过利用云计算的分布式处理能力,将渲染任务分配给云端的服务器集群进行计算,从而实现高效、高质量的渲染效果。 这种技术的优势主要体现在以下几个方面&#…

鸿蒙NEXT开发-学生管理系统小案例(基于最新api12稳定版)

注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…

《潜行者2切尔诺贝利之心》游戏引擎介绍

潜行者2切尔诺贝利之心是基于虚幻5引擎,所以画面效果大家不必担心。游戏目前已经跳票了很久,预计发售时间是2024 年 11 月 21 日,这次应该不会再跳票。 潜行者2切尔诺贝利之心是虚幻5吗 答:是虚幻5。 潜行者官方推特之前回复了…

WPF+MVVM案例实战(十八)- 自定义字体图标按钮的封装与实现(ABD类)

文章目录 1、案例效果1、按钮分类2、ABD类按钮实现描述1.文件创建与代码实现2、样式引用与控件封装3、按钮案例演示1、页面实现与文件创建2、运行效果如下3、总结4、源代码获取1、案例效果 1、按钮分类 在WPF开发中,最常见的就是按钮的使用,这里我们总结以下大概的按钮种类,…

在Vue和OpenLayers中使用移动传感器实现飞机航线飞行模拟

项目实现的核心代码 项目概述 该项目的目标是使用Vue.js作为前端框架,结合OpenLayers用于地图显示,实时获取来自手机传感器的数据(如经纬度、高度、速度)来模拟飞机在地图上的飞行轨迹。整体架构如下: Vue.js 用于构建…

C语言-详细讲解-洛谷P1075 [NOIP2012 普及组] 质因数分解

1.题目要求 2.题目解析 解题点在于如何分解质因数&#xff0c;这里介绍一下短除法。&#xff08;虽然解决这个问题可以不用短除法&#xff09; 3.代码实现 贴一下自己的代码 #include <stdio.h> #include <math.h>int main() {int n, i;scanf("%d",…

基于springboot的音乐网站的设计与实现(源码+lw+调试)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

RabbitMQ 管理平台(控制中心)的介绍

文章目录 一、RabbitMQ 管理平台整体介绍二、Overview 总览三、Connections 连接四、Channels 通道五、Exchanges 交换机六、Queues 队列查看队列详细信息查看队列的消息内容 七、Admin 用户给用户分配虚拟主机 一、RabbitMQ 管理平台整体介绍 RabbitMQ 管理平台内有六个模块&…

Golang | Leetcode Golang题解之第542题01矩阵

题目&#xff1a; 题解&#xff1a; type point struct{x, y int }var dirs []point{{-1, 0}, {1, 0}, {0, -1}, {0, 1}}func updateMatrix(mat [][]int) [][]int {var m, n len(mat), len(mat[0])var res make([][]int, m)var visited make([][]bool, m)var queue []poin…

前端介绍|基础入门-html+css+js

文章目录 本课程有什么&#xff1f;前端是什么&#xff1f;1. **前端概述**2. **前端的工作职责**3. **前端技术栈**6. **前端开发工具**7. **HTML、CSS、JS的关系** 本课程有什么&#xff1f; 本套课程是零基础入门保姆级课程&#xff0c;课程主要内容包含&#xff1a; HTML…