本地配置多个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设置
如果你在 Windows 的 SSH 环境中(比如使用 OpenSSH 客户端或通过 WSL),ssh-agent 不能执行 ll 命令,这通常是因为 ll 命令没有在你的 shell 环境中定义为一个别名。ll 通常是 ls -l 的别名,它允许你以长列表格式查看目录内容。在 Windows 的 SSH 环境中,你需要确保你的 shell 配置文件(如 ~/.bashrc 或 ~/.bash_profile 对于 bash shell)包含了定义 ll 别名的行。然而,由于 Windows 和 Linux 环境之间的差异,这些配置文件可能不会像在标准的 Linux 环境中那样自动加载。以下是在 Windows 的 SSH 环境中为 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 的文档或社区支持以获取更多帮助。另外,如果你在使用 Windows 的 OpenSSH 客户端,并且 ssh-agent 是通过 Windows 的服务或任务计划程序运行的,那么你可能需要确保 ssh-agent 的环境变量(如 PATH 和 SSH_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 设置多个账号
相关文章:
![](https://img-blog.csdnimg.cn/direct/3256de300efa47128a99b0ae7d3f139c.png)
本地配置多个git账户及ll设置
本地配置多个git账户 清除全局配置将命令行,切换到ssh目录生成GitLab和Gitee的公钥、私钥去对应的代码仓库添加 SSH Keys添加私钥ll设置 管理密钥验证仓库配置关于gitgitee.com: Permission denied (publickey) 清除全局配置 此步骤可以不做,经测试不影…...
![](https://www.ngui.cc/images/no-images.jpg)
week04day04(爬虫)
一. 嵌套构造URL 下载所有英雄的皮肤图片:因为每个英雄图片的网址不同,但是有共同点,通过构建这个网址,再经过循环建立 所有链接 import requests import os# 1. 获取所有英雄的ID def get_all_hero_id():url https://game.gti…...
![](https://img-blog.csdnimg.cn/direct/52e63bba4d2e4b0fa72397f6a260ccab.png)
【数据结构初阶 6】二叉树:堆的基本操作 + 堆排序的实现
文章目录 🌈 Ⅰ 二叉树的顺序结构🌈 Ⅱ 堆的概念与性质🌈 Ⅲ 堆的基本操作01. 堆的定义02. 初始化堆03. 堆的销毁04. 堆的插入05. 向上调整堆06. 堆的创建07. 获取堆顶数据08. 堆的删除09. 向下调整堆10. 判断堆空 🌈 Ⅳ 堆的基本…...
![](https://img-blog.csdnimg.cn/ec05ab8f5f8e45388a476bc5b056fcb1.png)
IDEA Debug框的 show execution point按钮没了
在这里右键: Add Action: 搜索添加: 本文由博客一文多发平台 OpenWrite 发布!...
![](https://www.ngui.cc/images/no-images.jpg)
突破编程_C++_面试(类(1))
面试题 1 :解释一下 C 中的类是什么,它有哪些基本特性? C 中的类(class)是面向对象程序设计的基本构成单位,它是一种自定义的数据类型,用于封装数据以及操作这些数据的方法。类是创建对象的模板…...
![](https://img-blog.csdnimg.cn/direct/97524cfab3564ad695d25b023adff7da.png#pic_center)
vue项目使用vue2-org-tree
实现方式 安装依赖 npm i vue2-org-tree使用的vue页面引入 <template><div class"container"><div class"oTree" ><vue2-org-tree name"test":data"data":horizontal"horizontal":collapsable"…...
![](https://www.ngui.cc/images/no-images.jpg)
Vue30 自定义指令 函数式 对象式
实例 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>自定义指令</title><script type"text/javascript" src"../js/vue.js"></script></head><body><!-- 需求1&…...
![](https://img-blog.csdnimg.cn/direct/42c1445cb3584e1d877d36ddf93a3cbd.png)
JAVA高并发——单例模式和不变模式
文章目录 1、探讨单例模式2、不变模式 由于并行程序设计比串行程序设计复杂得多,因此我强烈建议大家了解一些常见的设计方法。就好像练习武术,一招一式都是要经过学习的。如果自己胡乱打,效果不见得好。前人会总结一些武术套路,对…...
![](https://img-blog.csdnimg.cn/direct/a749585e4286408fa6d537cb5befd5ce.png)
RabbitMQ(一):消息队列MQ
目录 1 消息队列MQ1.1 MQ简介1、什么是MQ2、MQ的优势流量削峰应用解耦异常处理数据分发分布式事务 3、消息中间件的弊端4、常用的MQ 1.2 MQ中几个基本概念1.3 MQ的通信模式1.4 消息的发布策略1.5 常用消息中间件协议1、AMQP协议2、MQTT协议3、OpenMessage协议4、kafaka协议 1 消…...
![](https://img-blog.csdnimg.cn/direct/8734e862453e4de9bd30c368a32af5a2.png)
HarmonyOS—使用预览器查看应用/服务效果
DevEco Studio为开发者提供了UI界面预览功能,可以查看应用/服务的UI界面效果,方便开发者随时调整界面UI布局。预览器支持布局代码的实时预览,只需要将开发的源代码进行保存,就可以通过预览器实时查看应用/服务运行效果,…...
![](https://www.ngui.cc/images/no-images.jpg)
大项目中,某个cpp文件读取所在包路径的方法
在一个比较大的C项目中,我们有很多包,每个包都有一个自己的src、include、CMakeLists.txt和其它文件,比如以下文件结构: project- pkg1- datas- data.json- src- xxx1.cpp- include- xxx1.h - CMakeLists.txt- pkg2- src- xxx2.…...
![](https://www.ngui.cc/images/no-images.jpg)
gem5学习(25):用于异构SoC的片上网络模型——Garnet2.0
目录 一、Invocation 二、Configuration 三、Topology 四、Routing 五、Flow Control 六、Router Microarchitecture 七、Buffer Management 八、Lifecycle of a Network Traversal 九、Running Garnet2.0 with Synthetic Traffic 官网教程:gem5: Garnet 2…...
![](https://img-blog.csdnimg.cn/direct/85e751170eb2471d97d117a16babd66a.gif)
康威生命游戏
康威生命游戏 康威生命游戏(Conway’s Game of Life)是康威发明的细胞自动机。 生命游戏有几个简单的规则: 细胞有两种状态,存活或死亡,每个细胞以自身为中心与周围的八格细胞互动。 对于存活的细胞: 当周围的细胞过少(<2)或…...
![](https://img-blog.csdnimg.cn/direct/7378a70455d74711a2abaed182fea6db.png)
vscode与vue环境配置
一、下载并安装VScode 安装VScode 官网下载 二、配置node.js环境 安装node.js 官网下载 会自动配置环境变量和安装npm包(npm的作用就是对Node.js依赖的包进行管理),此时可以执行 node -v 和 npm -v 分别查看node和npm的版本号: 配置系统变量 因为在执…...
![](https://img-blog.csdnimg.cn/direct/b5a3bbb902dd423b9b8ccb121881f2b7.png)
Linux的ACL权限以及特殊位和隐藏属性
前言: ACL是什么? ACL(Access Control List)是一种权限控制机制,用于在Linux系统中对文件和目录进行细粒度的访问控制。传统的Linux权限控制机制基于所有者、所属组和其他用户的三个权限类别(读、写、执行…...
![](https://img-blog.csdnimg.cn/direct/12672dd373994b5a927ba5bf1c8f9bea.png)
使用openai-whisper实现语音转文字
使用openai-whisper实现语音转文字 1 安装依赖 1.1 Windows下安装ffmpeg FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。 # ffmpeg官网 https://ffm…...
![](https://img-blog.csdnimg.cn/direct/e07b18716808400a842170eb57264dd7.png)
C++模板为什么不能声明和定义分离
首先我们要直到C程序运行需要进行的四个阶段。 预处理->编译->汇编->链接 编译:对语法语义分析,分析无误生成汇编,头文件不参加编译,多个源文件是分开单独编译的。 链接:将多个obj文件链接合成一个&#x…...
![](https://img-blog.csdnimg.cn/direct/b5313c86eeda49589aa7b70ea8ac3452.png)
啊丢的刷题记录手册
1.洛谷题P1923 求第k小的数 题目描述 输入 n(1≤n<5000000 且 n 为奇数)个数字ai(1≤ai<109),输出这些数字的第 k 小的数。最小的数是第 0 小。 请尽量不要使用 nth_element 来写本题,因为本题…...
![](https://www.ngui.cc/images/no-images.jpg)
用nginx正向代理https网站
目录 1. 缘起2. 部署nginx3. 测试3.1 http测试3.2 https测试4 给centos设置代理访问外网 1. 缘起 最近碰到了一个麻烦事情,就是公司的centos测试服务器放在内网环境,而且不能直接上外网,导致无法通过yum安装软件,非常捉急。 幸…...
![](https://img-blog.csdnimg.cn/direct/283e377bdf1c4835bf383f402c514ab4.png)
面向对象设计模式
一、单例 一个类只能创建唯一一个对象 利用限制构造、static完成 二、工厂模式 优势:规范接口(纯虚函数);实现多态(虚函数表);继承 1、简单工厂 一个工厂创建所有产品。 返回基类指针可…...
![](https://img-blog.csdnimg.cn/direct/e43b2586e7584e95947128764e69ad55.png)
人工智能_CPU微调ChatGLM大模型_使用P-Tuning v2进行大模型微调_007_微调_002---人工智能工作笔记0102
这里我们先试着训练一下,我们用官方提供的训练数据进行训练. 也没有说使用CPU可以进行微调,但是我们先执行一下试试: https://www.heywhale.com/mw/project/6436d82948f7da1fee2be59e 可以看到说INT4量化级别最低需要7GB显存可以启动微调,但是 并没有说CPU可以进行微调.我们…...
![](https://www.ngui.cc/images/no-images.jpg)
Android自编译Pixel3内核加入KernelSU
背景 让Pixel3 AOSP Android10 4.9内核用上Kernel SU 环境: Ubuntu 18.04 vm aosp10r2 移植参考官方,和github项目 Commits OnlyTomInSecond/android_kernel_xiaomi_sdm845 (github.com) 这个项目是 LineageOS/android_kernel_xiaomi_sdm845 编译的前提 已经有完整…...
![](https://img-blog.csdnimg.cn/direct/164d9de49af54cd0bf15e8d8cf2b7fe1.png)
Go 数据库编程精粹:database/sql 实用技巧解析
Go 数据库编程精粹:database/sql 实用技巧解析 简介database/sql 库的基础知识核心概念连接池驱动事务 环境配置 建立数据库连接连接到数据库示例:连接 MySQL 数据库连接池管理 执行查询和处理结果基本查询执行多行查询执行单行查询 结果处理处理多行结果…...
![](https://img-blog.csdnimg.cn/img_convert/f507b2e147f7dae124ca6a357fbd66eb.jpeg)
AI-Gateway:一款整合了OpenAI、Anthropic、LLama2等大语言模型的统一API接口
关于AI-Gateway AI-Gateway是一款针对大语言模型的统一API接口,该接口可以用在应用程序和托管的大语言模型(LLM)之间,该工具可以允许我们通过一个统一的API接口将API请求转发给OpenAI、Anthropic、Mistral、LLama2、Anyscale、Go…...
![](https://img-blog.csdnimg.cn/direct/c9f6157b688a4eadbe513181793d7680.png)
Android 广播的基本概念
一.广播简介 Broadcast是安卓四大组件之一。安卓为了方便进行系统级别的消息通知,引入了一套广播消息机制。打个比方,记得原来在上课的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接入到学校的广播室的,一旦…...
![](https://img-blog.csdnimg.cn/direct/747fc918ce354d488d2b07ab1533bee3.png)
【Docker实操】部署php项目
概述 最终达成的容器部署结构和原理如下图: 一、获取nginx、php官方镜像 docker pull nginx //拉取nginx官方镜像 docker pull php:7.4-fpm //拉取php官方镜像需要获取其他可用的php版本,可以上【docker hub】搜索【php】,所有的【xxx-fp…...
![](https://www.ngui.cc/images/no-images.jpg)
多线程-初阶
1. 认识线程( Thread ) 1.1 概念 1) 线程是什么 一个线程就是一个 " 执行流 ". 每个线程之间都可以按照顺讯执行自己的代码 . 多个线程之间 " 同时 " 执行 着多份代码 . 还是回到我们之前的银行的例子中。之前我们主要描…...
![](https://www.ngui.cc/images/no-images.jpg)
Object和Function是函数,函数都有一个prototype属性
Object 和 Function 都是 JavaScript 自带的函数对象 在 JavaScript 中,万物皆对象,你要一个吗?new Object() 啊! 当然,就好比同样为人,也区分普通人和天才。 对象也是有分类的,分为 普通对象…...
![](https://img-blog.csdnimg.cn/direct/c63c539facd34416961f6a61631989e8.png)
stm32利用CubeMX按键控制数码管加减数
首先画电路图: 接下来配置CubeMX: 设置好后生成MDK工程文件: 用keil打开工程: 添加部分代码: /* USER CODE BEGIN Includes */ uint16_t duan[]{0xC0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; uint1…...
![](https://www.ngui.cc/images/no-images.jpg)
前端页面生成条形码,借助layui打印标签
借助JsBarcode生成条形码 官网:https://lindell.me/JsBarcode/ github: https://github.com/lindell/JsBarcode <div class"table-div" style"display: block;width: 300px; height: 241px; margin: auto;"><table border"1&quo…...
![](https://oscimg.oschina.net/oscnet/89fadc78b5b08791d652e204cd70e3912ce.jpg)
怎么做跟别人一样的网站吗/seo网站推广工作内容
2019独角兽企业重金招聘Python工程师标准>>> 条件查询: db.Test_One.find({}) 无条件--查询所有 db.getCollection(Test_One).find({"name": "演员的自我修养","nation":"俄国"})or查询:$or db.getC…...
![](/images/no-images.jpg)
电商网站制作/百度指数大数据
没有顺序关系,可前可后。...
![](/images/no-images.jpg)
网站数据表怎么做/自媒体培训学校
旅游与每个人的生活息息相关,旅游产业也亟需一种脱胎换骨的方式提升效益。在近日第15届中国互联网大会“互联网民航”专场上,梦想旅行CEO郭宁表示,大数据将改变传统旅游行业的DNA,加速推动智慧旅游时代的到来。 大数据打破旅游信息…...
![](https://img-blog.csdnimg.cn/9f7e6321f3bd49558907e7510e861a28.png)
创新网站建设工作室/网站名称查询
计算属性 两个问题: 为什么计算属性写的时候是 函数,用的时候不需要加(),当属性使用?计算属性的缓存问题 计算属性computed里面,不仅有get方法,还有set方法 其本质是: // 计算属性computed:…...
![](https://img2018.cnblogs.com/blog/327258/201812/327258-20181228183334719-1365695864.png)
网站制作样板/百度关键词排名神器
.NetCore 下开发独立的(RPL)含有界面的组件包 (一)准备工作 .NetCore 下开发独立的(RPL)含有界面的组件包 (二)扩展中间件及服 务 .NetCore 下开发独立的(RPL࿰…...
![](https://img-blog.csdnimg.cn/06a8759ecec1421994ca7ae67635900f.png)
做资源分享网站/厦门seo搜索排名
📄个人主页:胖虎不秃头 ✨个人简介:Java领域新星创作者,随时准备跑路的大二学生 🔥精品专栏:有这一个就够了 🌈个人名言:知道的越多,不知道的越多 💥刷题神器…...