本地配置多个git账户及ll设置

本地配置多个git账户

  • 清除全局配置
  • 将命令行,切换到ssh目录
  • 生成GitLab和Gitee的公钥、私钥
  • 去对应的代码仓库添加 SSH Keys
  • 添加私钥
    • ll设置
  • 管理密钥
  • 验证
  • 仓库配置
  • 关于git@gitee.com: Permission denied (publickey)

清除全局配置

此步骤可以不做,经测试不影响新增的git账户的使用

执行命令查看是否存在全局配置:

git config --global --list

如果其中有 user.name 和 user.email 信息,请执行以下命令将其清除掉:

git config --global --unset user.name
git config --global --unset user.email

将命令行,切换到ssh目录

cd ~/.ssh

生成GitLab和Gitee的公钥、私钥

ssh-keygen -t rsa -C “代码仓库注册的邮箱”

按下 ENTER 键后,会有如下提示:

Generatingpublic/privatersa key pair.Enter fileinwhich to save the key
(/Users/jitwxs/.ssh/id_rsa):

在这里输入公钥的名字,默认情况是叫 id_rsa,为了和后面的 gitee 配置区分,这里输入 id_rsa_github。输入完毕后,一路回车,钥对就生成完毕了。

去对应的代码仓库添加 SSH Keys

GitLab的话打开id_rsa_gitlab.pub全部复制后去仓库中进行添加,复制的内容复制进Key中,Title想叫

添加私钥

从这步开始切换到仓库的位置做,
以下步骤仅在bash所在位置文件夹生效 
cd  xxx/workspace

在上一步中,我们已经将公钥添加到了 github 或者 gitlab 服务器上,我们还需要将私钥添加到本地中,不然无法使用。添加命令也十分简单,如下:

ssh-add ~/.ssh/id_rsa_gitlab // 将 GitLab 私钥添加到本地
ssh-add ~/.ssh/id_rsa_gitee // 将 Gitee 私钥添加到本地

如果出现了

Could not open a connection to your authentication agent.

则先运行下面了这个命令,就可以完美解决这个问题了
值得一提的是当执行完这个命令之后ll命令将不再被识别

ll设置

如果你在 WindowsSSH 环境中(比如使用 OpenSSH 客户端或通过 WSL),ssh-agent 不能执行 ll 命令,这通常是因为 ll 命令没有在你的 shell 环境中定义为一个别名。ll 通常是 ls -l 的别名,它允许你以长列表格式查看目录内容。

在 WindowsSSH 环境中,你需要确保你的 shell 配置文件(如 ~/.bashrc 或 ~/.bash_profile 对于 bash shell)包含了定义 ll 别名的行。然而,由于 WindowsLinux 环境之间的差异,这些配置文件可能不会像在标准的 Linux 环境中那样自动加载。

以下是在 WindowsSSH 环境中为 ll 设置别名的步骤:

打开你的 shell 配置文件:
通常,你可以在用户主目录下找到 .bashrc 或 .bash_profile 文件。你可以使用文本编辑器打开它。

定义 ll 别名:
在配置文件中添加以下行来定义 ll 别名:

bash
alias ll='ls -l'
确保配置文件被加载:
如果你在使用 WSL,你的 .bashrc 或 .bash_profile 文件应该在启动时被加载。如果不是这样,你可能需要手动加载它,或者在你的 shell 配置中添加适当的命令来加载它。

启动新的 shell 会话:
在修改了配置文件后,你需要启动一个新的 shell 会话,或者重新加载配置文件,以使更改生效。你可以使用 source 命令来重新加载配置文件:

bash
source ~/.bashrc
检查别名是否设置成功:
在新的 shell 会话中,输入 alias 命令来查看所有的别名,确保 ll 别名已经列出。然后,尝试使用 ll 命令来查看目录内容。

如果你在使用 WSL,并且已经按照上述步骤操作,但 ll 命令仍然不可用,可能是因为 WSL 没有正确配置来加载你的 shell 配置文件。在这种情况下,你可能需要查看 WSL 的文档或社区支持以获取更多帮助。

另外,如果你在使用 WindowsOpenSSH 客户端,并且 ssh-agent 是通过 Windows 的服务或任务计划程序运行的,那么你可能需要确保 ssh-agent 的环境变量(如 PATHSSH_AUTH_SOCK)被正确设置,并且你的 shell 配置文件被加载到 ssh-agent 的环境中。这可能需要更复杂的配置和调试。

在Git\etc\profile.d\bash_profile.sh加一行即可

	alias ll='ls -l'

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ssh密钥管理器,ssh-agent命令是一种控制用来保存公钥身份验证所使用的私钥的程序。ssh-agent在X会话或登录会话之初启动,所有其他窗口或程序则以客户端程序的身份启动并加入到ssh-agent程序中。通过使用环境变量,可定位代理并在登录到其他使用ssh机器上时使用代理自动进行身份验证。
其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。
我们认为你正在用ssh key做权限认证。为了避免你在启动ssh agent时重复输入密码,你可以输下面两个命令
ssh-agent bash:启动ssh agent,并把bash挂到上面
ssh-add .ssh/id_rsa:添加私钥并由ssh agent保管,这样下次就不需要再输入密码了

ssh-agent启动bash,或者说把bash挂到ssh-agent下面。

ssh-agent bash

添加完毕后,可以通过执行 ssh-add -l 验证下,如果都能显示出来和下面一样,就 OK 了

ssh-add -l
3072 SHA256:************ “邮箱”(RSA)
3072 SHA256:************ “邮箱”(RSA)

管理密钥

通过以上步骤,公钥、密钥分别被添加到 git 服务器和本地了。下面我们需要在本地创建一个密钥配置文件,通过该文件,实现根据仓库的 remote 链接地址自动选择合适的私钥。

编辑 ~/.ssh 目录下的 config 文件,如果没有,就需要创建。
内容如下:

Host gitlab
HostName gitlab.com
User usergitlab
IdentityFile ~/.ssh/id_rsa_gitlab
Host gitee
HostName gitee.com
User user
IdentityFile ~/.ssh/id_rsa_gitee

该文件分为多个用户配置,每个用户配置包含以下几个配置项:

Host:仓库网站的别名,随意取(个人建议可以和HostName一样也可以)
HostName:仓库网站的域名(PS:IP 地址应该也可以)
User:仓库网站上的用户名
IdentityFile:私钥的绝对路径

验证

注意:git和@中间没有空格

ssh -T git@github.com 

出现以下提示信息,就证明配置成功了

$ ssh -T git@gitee.com
Hi user! You've successfully authenticated, but GITEE.COM does not provide shell access.

Jan@Jancar MINGW64 ~/.ssh
$ ssh -T git@gitlab.com
Welcome to GitLab, user!

注意当出现这个判断时要手动输入yes 否则无法成功
在这里插入图片描述
“but GitHub does not provide shell access“这句话的意思是,GitHub不提供shell (ssh)访问/接入权限。ssh -T选项的意思为,不分配伪终端。
这句话的意思即为你无法使用ssh协议直接登录github,在github服务器上建立一个伪终端,并进行操作。所以,这句提示并不是一个错误,而是github输出的一句提示语。
同样你可以在本地使用ssh协议进行git相关操作,并提交到github,没有任何影响。希望能解决你的疑问。

仓库配置

恭喜你!完成以上配置后,其实你已经基本完成了所有配置。分别进入附属于 github 和 gitlab 的仓库,此时都可以进行 git 操作了。但是别急,如果你此时提交仓库修改后,你会发现提交的用户名变成了你的系统主机名。

这是因为 git 的配置分为三级别,System —> Global —>Local。System 即系统级别,Global 为配置的全局,Local 为仓库级别,优先级是 Local > Global > System。

因为我们并没有给仓库配置用户名,又在一开始清除了全局的用户名,因此此时你提交的话,就会使用 System 级别的用户名,也就是你的系统主机名了。

因此我们需要为每个仓库单独配置用户名信息,假设我们要配置 github 的某个仓库,进入该仓库后,执行:

git config --local user.name “用户名”
git config --local user.email “邮箱”

执行完毕后,通过以下命令查看本仓库的所有配置信息:

git config --local --list

至此你已经配置好了 Local 级别的配置了,此时提交该仓库的代码,提交用户名就是你设置的 Local 级别的用户名了。

关于git@gitee.com: Permission denied (publickey)

明明我在.ssh目录下是执行成功的,但是到准备提交的仓库中就是不成功

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

所以我就想着是不是和HostName和Host有关系,因为我的HostName和Host是不一样的
在这里插入图片描述

于是乎我就想着在仓库目录下试试看ssh -T git@gitee
在这里插入图片描述

没想到就成功了,这才恍然大悟。

这里的解决办法有两种
1、修改Host和HostName一样(从本文第六步开始)
2、把仓库目录下的/.git/config中的远程url从
url = git@gitee.com:name/demo-collection.git
修改为url = git@gitee:name/demo-collection.git

在这里插入图片描述

参考文档

【Git】Git 多用户配置

but GITEE.COM does not provide shell access

程序员必学必会- Git 设置多个账号

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mysql优化指南之优化篇

二、优化 现在的理解数据库优化有四个维度,分别是: 硬件升级、系统配置、表结构设计、SQL语句及索引。 那优化的成本和效果分别如下: 优化成本:硬件升级>系统配置>表结构设计>SQL语句及索引。 优化效果:…

EAP-TLS实验之Ubuntu20.04环境搭建配置(FreeRADIUS3.0)(二)

上篇文章简要介绍了freeradius的搭建及配置,在最后数据库连接阶段还没进行测试验证,今天继续。 修改相关文件 1 radiusd.conf 打开762行注释($INCLUDE mods-enabled/sql); 2 sites-available/default …

C#上位机与三菱PLC的通信11---开发自己的通讯工具软件(WPF版)

1、先看颜值 2、开始干 1、创建项目 2、引入前面的通讯库 创建目录将前面生成的通讯库dll文件复制到项目的目录 本项目引入dll文件 3、创建命令基类 RelayCommand.cs代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst…

【EI会议征稿通知】第四届生物医学与生物信息工程国际学术会议(ICBBE 2024)

第四届生物医学与生物信息工程国际学术会议(ICBBE 2024) The 4th International Conference on Biomedicine and Bioinformatics Engineering 由河南大学主办,中州实验室、河南大学基础医学院、河南大学郑州校区学术发展部共同承办的第四届生…

docker部署seata1.6.0

docker部署seata1.6.0 Seata 是 阿里巴巴 开源的 分布式事务中间件,解决 微服务 场景下面临的分布式事务问题。需要先搭建seata服务端然后与springcloud的集成以实现分布式事务控制的过程 ,项目中只需要在远程调用APi服务的方法上使用注解 GlobalTransa…

npm install 失败,需要node 切换到 对应版本号

npm install 失败 原本node 的版本号是16.9,就会报以上错误 node版本问题了,我切到这个版本,报同样的错。降一下node(14.18)版本就好了 具体的方法:(需要在项目根目录下切换) 1. …

动力气象-斜压发展

前言 斜压发展 天气尺度扰动发展通常被称为锋生,强调的是相对涡度在天气尺度系统发展过程中的作用。 具体而言,讨论的是天气尺度扰动增长过程中平均气流的动力学不稳定起到的作用。 7.1静力不稳定性 概念: 如果进入纬向平均流场的小尺度扰…

男性美颜SDK解决方案,专属男性美化新体验

随着科技的发展,美颜技术已广泛应用于摄影、社交、直播等领域,满足了用户对美的追求。然而,传统的美颜算法往往更偏向于女性用户,忽视了男性用户对于自然、真实美的需求。美摄科技针对这一市场痛点,推出了专为男性设计…

ArcgisForJS如何实现添加含图片样式的点要素?

文章目录 0.引言1.加载底图2.获取点要素的坐标3.添加含图片样式的几何要素4.完整实现 0.引言 ArcGIS API for JavaScript 是一个用于在Web和移动应用程序中创建交互式地图和地理空间分析应用的库。本文在ArcGIS For JavaScript中使用Graphic对象来创建包含图片样式的点要素。 …

深入浅出JVM(六)之前端编译过程与语法糖原理

本篇文章将围绕Java中的编译器,深入浅出的解析前端编译的流程、泛型、条件编译、增强for循环、可变长参数、lambda表达式等语法糖原理 编译器与执行引擎 编译器 Java中的编译器不止一种,Java编译器可以分为:前端编译器、即时编译器和提前编…

【鸿蒙 HarmonyOS 4.0】ArkTS开发语言

一、背景 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集。 二、基本语法 2.1、基本语法介绍 ArkTS的基本组成,资料来自…

查找算法/搜索 | 二分法(python)

Hi,大家好,我是半亩花海。近期在学习算法与数据结构相关知识,纯纯小白,欢迎一起交流呀。打算从算法学起,首先学习查找算法(搜索)中的二分法,我使用的是 python 语言进行学习。本算法…

【QT-lineEidte动画效果

QT-lineEidte动画效果 一、演示效果二、核心代码三、下载链接 一、演示效果 二、核心代码 #ifndef DynamicUnderlineLineEdit_H #define DynamicUnderlineLineEdit_H#include <QWidget> #include <QLineEdit> #include <QPainter> #include <QPaintEvent…

【学习iOS高质量开发】——协议与分类

文章目录 一、通过委托与数据源协议进行对象间通信1.委托模式2.要点 二、将类的实现代码分散到便于管理的数个分类之中1.如何实现2.要点 三、总是为第三方类的分类名称加前缀1.为什么总是为第三方类的分类名称加前缀2.要点 三、勿在分类中声明属性1.勿在分类中声明属性的原因2.…

【最新Dubbo3深入理解】Dubbo3中的SPI机制以及IOC、AOP

欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术的推送&#xff01; 在我后台回复 「资料」 可领取编程高频电子书&#xff01; 在我后台回复「面试」可领取硬核面试笔记&#xff01; 文章导读地址…

MFC 配置Halcon

1.新建一个MFC 工程&#xff0c;Halcon 为64位&#xff0c;所以先将工程改为x64 > VC 目录设置包含目录和库目录 包含目录 库目录 c/c ->常规 链接器 ->常规 > 链接器输入 在窗口中添加头文件 #include "HalconCpp.h" #include "Halcon.h"…

canvas水波纹效果,jquery鼠标水波纹插件

canvas水波纹效果&#xff0c;jquery鼠标水波纹插件 效果展示 jQuery水波纹效果&#xff0c;canvas水波纹插件 HTML代码片段 <div class"scroll04wrap"><h3>发展历程</h3><div class"scroll04"><p>不要回头&#xff0c;一…

移动硬盘误删的文件还能找回来吗?1分钟弄清答案!

“想问问大家如果移动硬盘里保存了很多文件&#xff0c;但上次使用时不小心将部分文件删除了&#xff0c;还有机会找回误删的文件吗&#xff1f;应该怎么进行误删文件的恢复呢&#xff1f;” 在数字化时代&#xff0c;移动硬盘成为了我们存储和传输数据的重要工具。然而&#x…

外泌体相关基因肝癌临床模型预测——2-3分纯生信文章复现——02.数据格式整理(1)

内容如下&#xff1a; 1.外泌体和肝癌TCGA数据下载 2.数据格式整理 3.差异表达基因筛选 4.预后相关外泌体基因确定 5.拷贝数变异及突变图谱 6.外泌体基因功能注释 7.LASSO回归筛选外泌体预后模型 8.预后模型验证 9.预后模型鲁棒性分析 10.独立预后因素分析及与临床的…

【Appium UI自动化】pytest运行常见错误解决办法

通过Appium工具录制代码在pycharm上运行报错&#xff1a; 错误一&#xff1a; 1.提示 setup() 方法运行 error failed 解决办法&#xff1a;未创建 init __ 方法&#xff0c;创建一个空的__init.py文件就解决了。 原因&#xff1a; 错误二&#xff1a; 2.运行代码&#xff…