【计算机基础】Git系列2:配置多个SSH

news2024/9/24 5:32:41

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载请注明出处

文章目录

  • 一、前言
  • 二、配置多个SSH Key
    • 步骤1、生成多对秘钥
    • 步骤2、保存多个SSH Key
    • 步骤3、 添加公钥到远程仓库平台
    • 步骤4、测试SSH连接
    • 步骤5、拉取远程demo
  • 三、解决SSH公钥未生效的问题


一、前言

📝SSH简介
SSH是Secure Shell(安全外壳协议)的缩写,建立在应用层和传输层基础上的安全协议。为了便于访问github,要生成ssh公钥,这样就不用每一次访问github都要输入用户名和密码。简单来说就是方便我们拉取推送代码。

📝配置多个SSH Key的原因
大多数时候,我们的会有很多的git host,比如公司gitlab、github、oschina等,那我们就需要在本地配置多个ssh key,通过为不同的Host配置不同的IdentityFile,可以让Git在不同平台使用多个SSH Key进行认证和授权。做法如下(以公司gitlab和github为例):

二、配置多个SSH Key

步骤1、生成多对秘钥

1、为公司生成一对秘钥ssh key

ssh-keygen -t rsa -C '邮箱' -f ~/.ssh/gitlab_rsa

2、为github生成一对秘钥ssh key:

ssh-keygen -t rsa -C '邮箱' -f ~/.ssh/github_rsa

3、为gitee生成一对秘钥ssh key:

ssh-keygen -t rsa -C '邮箱'' -f ~/.ssh/gitee_rsa

注意:三个邮箱要不相同,但是邮箱没有必要跟注册时候完全一致

步骤2、保存多个SSH Key

为了使用多个SSH Key,你需要为每个Key创建不同的配置,用于配置多个不同的host使用不同的ssh key。在~/.ssh目录下,打开或创建一个名为config的文件(无后缀名),并添加以下内容(示例):
在这里插入图片描述
其中Hos和HostName填写git服务器的域名,IdentityFile指定私钥的路径。经过实测发现,也可以不用这个config。

步骤3、 添加公钥到远程仓库平台

将生成的公钥(id_rsa.pub 或者其他指定的公钥文件)内容复制到相应的远程仓库平台的账户设置中。不同平台的步骤可能略有不同,但一般都会提供一个界面来添加SSH Key。

步骤4、测试SSH连接

运行以下命令来测试SSH连接是否配置正确:

ssh -T git@github.com   #使用github的Key
ssh -T git@gitlab.com   #使用gitlab的Key

如果显示类似 “Hi username! You’ve successfully authenticated” 的欢迎消息,说明连接成功。
否则就是失败的:
在这里插入图片描述
验证通过后即可愉快的clone代码了。

步骤5、拉取远程demo

首先复制想要拉下来的demo地址,然后在配置好公钥之后就可以拉取远程仓库的demo了,命令如下:

Git clone 仓库地址

在这里插入图片描述

三、解决SSH公钥未生效的问题

配置公钥的目的:是为了在clone远程demo的时候不需要输入密码,但是很多时候会碰到即使配置了公钥还需要密码的情况,这是为什么?
问题描述:配置了ssh秘钥,但在登录时还是需要密码,考虑是不是秘钥设置错误了?即:解决SSH免密登录配置成功后不生效的问题。
在这里插入图片描述
在这里插入图片描述
解决方法:如果在使用SSH公钥进行身份验证时,Git 仍然要求输入密码,有几种可能的原因:

  1. 公钥未正确添加到GitLab:请确认将正确的公钥(例如 id_rsa.pub)添加到 GitLab 账户的 SSH Keys 中。检查公钥文件的内容是否正确复制到了 GitLab 界面上并保存。

  2. SSH代理未正确配置:SSH代理可能没有正确加载SSH密钥。尝试重新加载SSH密钥,可以运行以下命令:

   ssh-add -D   # 清除现有的 SSH 密钥
   ssh-add     # 重新加载 SSH 密钥
  1. SSH配置文件有误:再次检查 ~/.ssh/config 配置文件,确保Host、HostName、User 和 IdentityFile 的设置无误。确认文件路径和文件名是否与实际的私钥文件相匹配。

  2. Git仓库URL错误:确保在Git克隆命令中使用了正确的SSH URL,例如:

git clone git@gitlab.com:<username>/<repository>.git
  1. GitLab服务器配置问题:在某些情况下,GitLab服务器可能存在一些配置问题,导致身份验证失败。请确保GitLab网站上的SSH设置正确启用了SSH密钥身份验证,并且没有其他限制。

如果以上解决方法都不起作用,建议检查系统日志或GitLab的错误日志以获取更多详细的错误信息,命令如下。

ssh -vvv git@gitlab.com 

同理,如果在其他远程仓库没有连上,也可以基于上述命令调出日志来检查一下。
首先通过上述命令查看日志发现存在的问题,找不到公钥的文件,说明命名方式出问题了。
在这里插入图片描述
那么更改成它索引的文件名即可。根据上图提示我们将.ssh中的公钥文件的名字改为了id_dsa。然后再clone,发现可以用了,能连的上了。经过实测,三个平台均可以进行顺利的clone操作。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
根据上面的方法,我们可以得出结论,出现仍要密码的问题时,第一步先去看看日志,找出病因,然后对症下药,其中config文件并不是必须得,看网上的说法,这个跟版本有关,新版的git都可以不用config,但是加上了会对clone有影响。

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

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

相关文章

Python 07面向对象的三大特点【封装、继承、多态】

&#x1f600;前言 在软件开发的过程中&#xff0c;面向对象编程&#xff08;Object-Oriented Programming&#xff0c;简称 OOP&#xff09;已经成为了一种不可或缺的编程范式。它允许开发人员创建属于自己的对象&#xff0c;具有其特征和行为&#xff0c;通过将数据和方法绑定…

Python中进行特征重要性分析的9个常用方法

特征重要性分析用于了解每个特征(变量或输入)对于做出预测的有用性或价值。目标是确定对模型输出影响最大的最重要的特征&#xff0c;它是机器学习中经常使用的一种方法。 为什么特征重要性分析很重要? 如果有一个包含数十个甚至数百个特征的数据集&#xff0c;每个特征都可能…

排序与分页——“MySQL数据库”

各位CSDN的uu们你们好呀&#xff0c;今天&#xff0c;小雅兰的内容是MySQL数据库里面的排序与分页&#xff0c;下面&#xff0c;让我们进入排序与分页的世界吧&#xff01;&#xff01;&#xff01; 排序数据 分页 排序数据 排序规则 使用 ORDER BY 子句排序 ASC&#xf…

在JavaScript中,什么是浏览器事件循环(browser event loop)?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 浏览器事件循环&#xff08;Browser Event Loop&#xff09;⭐ 执行同步任务⭐ 处理微任务队列&#xff08;Microtask Queue&#xff09;⭐ 处理宏任务队列&#xff08;Macrotask Queue&#xff09;⭐ 重复循环⭐ 写在最后 ⭐ 专栏简介 前…

一、K近邻算法K-NN

一、算法思路 K近邻算法&#xff0c;k-nearest neighbor&#xff0c;即K-NN 通俗来说&#xff1a;给定一个元素&#xff0c;然后以该元素坐标为圆心开始画圆&#xff0c;其中K值是超参数需要人为给定&#xff0c;圆的半径逐渐增大(距离度量采用欧氏距离)&#xff0c;直到包含其…

【电子元件】常用电子元器件的识别之电容器

目录 前言1. 电容器的简介2.电容器的识别1. 铝电解电容器2.钽电解电容器3.固态电解电容器4.瓷介电容器5. 贴片陶瓷电容器6. 聚丙烯电容7. 金属化聚丙烯薄膜电容器8. 独石电容器9. 涤纶电容器10. 超小型金属化聚酯薄膜电容器11. 可变电容器11.1 空气可变电容器11.2 薄膜介质可变…

Vue前端页面打印

前端依赖10-插件"print-js": “^1.6.0” 一&#xff1a;简介 print-js 是一个 Vue.js 插件&#xff0c;用于在 Vue.js 项目中实现打印功能。它依赖于 print-js 库&#xff0c;所以需要安装这个库。 能实现以下功能&#xff1a; PDF打印&#xff08;默认&#xff…

Python语言:求水仙花数案例讲解

求水仙花数是循环和判断语句相结合的一个经典案例。 思路分析 通过循环遍历100到999之间的数字然后根据他们的个位&#xff0c;十位&#xff0c;百位上的数字立方和是否为他本身来判断分析得出什么数是水仙花数。 1&#xff09;如何循环遍历100到999的所有数字&#xff1f; 使…

10分钟开发Kubernetes Operator

Operator是扩展原生Kubernetes能力的主要模式&#xff0c;本文通过一个简单示例&#xff0c;介绍了如何从0开始构建Kubernetes Operator实现用户自定义功能。原文: Build a Kubernetes Operator in 10 Minutes 你也许能够将应用熟练的部署到Kubernetes[1]上&#xff0c;但你知道…

MAUI android连接sqlserver

PDA是android系统&#xff0c;调用金蝶云星空webapi实现仓库收发料&#xff0c;使用读取webapi有些功能无法实现&#xff0c;需要直接读写数据库&#xff0c;读取报错&#xff0c;如图&#xff1a; 用控制台程序测试正常读取 google搜索了一圈&#xff0c; 都需要使用ssl证书才…

华为云云耀云服务器 L 实例评测|配置教程 + 用 Python 简单绘图

文章目录 Part.I IntroductionChap.I 云耀云服务器 L 实例简介Chap.II 参与活动步骤 Part.II 配置Chap.I 初步配置Chap.II 配置安全组 Part.III 简单使用Chap.I VScode 远程连接华为云Chap.II 简单绘图 Reference Part.I Introduction 本篇博文是为了参与华为“【有奖征文】华…

为建模而建模,高成本的临床预测模型意义何在?

9.23-24 郑老师“量表与中介研究数据分析”课程&#xff0c;欢迎报名 “量表与中介研究数据分析”9.23-24直播课&#xff0c;发文后退款 关于预测模型&#xff0c;周三有位同学过来咨询我&#xff0c;说“郑老师&#xff0c;毕业论文&#xff0c;建一个脑卒中患者抑郁的预测模型…

Linux 简介 启动过程

简介 Linux 是一套免费使用和自由传播的开放源码的类 UNIX 操作系统&#xff0c;英文解释为&#xff1a; Linux is not Unix。1991 年由林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;在赫尔辛基大学上学时出于个人爱好而编写的&#xff0c;主要受到 Minix 和 Unix 思想的…

JavaSE---常用的API

1. 什么是API&#xff1f; API (Application Programming interface) 应用程序编程接口。通俗来讲&#xff0c;就是Java已经帮我们写好了一些方法&#xff0c;我们直接拿过来用即可。 iodraw&#xff1a;https://www.iodraw.com/ API在线中文文档&#xff1a;https://www.ma…

Python入门教程39:教你使用distutils本地发布模块与模块安装的操作

★★★★★博文创作不易&#xff0c;我的博文不需要打赏&#xff0c;也不需要知识付费&#xff0c;可以白嫖学习编程小技巧。使用代码的过程中&#xff0c;如有疑问的地方&#xff0c;欢迎大家指正留言交流。喜欢的老铁可以多多点赞收藏分享置顶&#xff0c;小红牛在此表示感谢…

RabbitMQ消息可靠性(一)-- 生产者消息确认

前言 在项目中&#xff0c;引入了RabbitMQ这一中间件&#xff0c;必然也需要在业务中增加对数据安全性的一层考虑&#xff0c;来保证RabbitMQ消息的可靠性&#xff0c;否则一个个消息丢失可能导致整个业务的数据出现不一致等问题&#xff0c;对系统带来巨大的影响&#xff0c;…

tomcat架构概览

https://blog.csdn.net/ldw201510803006/article/details/119880100 前言 Tomcat 要实现 2 个核心功能&#xff1a; 处理 Socket 连接&#xff0c;负责网络字节流与 Request 和 Response 对象的转化。加载和管理 Servlet&#xff0c;以及具体处理 Request 请求。 因此 Tomc…

weblogic __ 10.3.6 __ 反序列化漏洞 _ CVE-2017-10271

weblogic __ 10.3.6 __ 反序列化漏洞 _ CVE-2017-10271 说明内容漏洞编号CVE-2017-10271漏洞名称反序列化漏洞影响范围10.3.6.0.0&#xff0c;12.1.3.0.0&#xff0c;12.2.1.1.0&#xff0c;12.2.1.2.0漏洞描述Weblogic的WLS Security组件对外提供webservice服务&#xff0c;其…

MySQL里的查看操作

查看数据库或者表 列出所有数据库&#xff1a; show databases;查看正在使用的数据库&#xff08;必须大写&#xff09;&#xff1a; SELECT DATABASE();列出数据库中的表&#xff1a; use 数据库;//选中数据库 show 表;//列出当前数据库下所有表获取数据库表结构&#xff…

OpenCV(四十七):RANSAC优化特征点匹配

1.RANSAC算法介绍 RANSAC是一种常用的参数估计方法&#xff0c;全称为Random Sample Consensus&#xff08;随机抽样一致性&#xff09;。它的主要思想是通过随机选择一部分数据样本&#xff0c;构建模型并评估其拟合程度&#xff0c;迭代过程中逐步优化模型&#xff0c;最终得…