当前位置: 首页 > news >正文

Git多库多账号本地SSH连接配置方法

Git多库多账号本地SSH连接配置方法

    • 一、前言
    • 二、环境
    • 三、帮助文档
    • 四、多环境配置
      • 4.1 配置config文件
    • 五、生成RSA秘钥对
      • 5.1 ssh秘钥位置
      • 5.2 生成秘钥对(公钥、私钥)
      • 5.3 添加公钥到GIT用户配置中
    • 六 测试git是否可以使用
    • 七、总结

一、前言

在使用Git管理代码时,很大可能会存在多个不同的库,公司(一般部署的是私服),个人(github、gitee或其他的),这时候就要同时操作多个不同的账号提交代码。下面说下使用ssh方式配置和管理多个git账号的方法。

二、环境

  • windows 10
  • git version 2.34.0.windows.1

三、帮助文档

  • 通过 SSH 连接到 GitHub

四、多环境配置

git通过config文件,可以配置多个库的多个私钥,在执行clone命令时,会通过指定库的域名使用不同私钥文件进行自动登录鉴权。config文件默认存在 C:\Users\admin.ssh 目录下。

注:config是个没有后缀的文本文件,不是文件夹

  • 操作顺序是:
    • 通过ssh-keygen命令生成ras的公钥、私钥;
    • 修改/新增config文件;
    • 配置config加入多环境配置;

4.1 配置config文件

打开目录 C:\Users\admin.ssh ,使用文本编辑器打开config文件(没有手动建一个),录入一下内容并保存。
其中 host 后面的域名(也可以填写IP),根据实际情况填入。

  • 参数说明:
    • Host 为代码服务器的域名或IP;
    • IdentityFile 为通过ssh-keygen生成的rsa私钥文件,xxx_id_rsa为无后缀的文本文件,生成方法后续介绍;
# github
Host code.github.comPreferredauthentications publickeyIdentityFile ~/.ssh/github_id_rsa# gitee
Host code.gitee.comPreferredauthentications publickeyIdentityFile ~/.ssh/gitee_id_rsa

五、生成RSA秘钥对

5.1 ssh秘钥位置

ssh-keygen生成的文件默认存储在用户目录下,如:C:\Users\admin.ssh目录,
admin为当前登录用户名。

5.2 生成秘钥对(公钥、私钥)

执行ssh-keygen命令生成执行用户的公钥、私钥文件,使用-f参数控制生成的文件名和生成位置。

--执行命令
ssh-keygen -t rsa -b 2048 -C "xiexiaojing" -f C:\Users\admin\.ssh\github_id_rsa
--输出内容
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\admin\.ssh\github_id_rsa.
Your public key has been saved in C:\Users\admin\.ssh\github_id_rsa.pub.

5.3 添加公钥到GIT用户配置中

  • 用文本编辑器打开生成的github_id_rsa.pub公钥文件;
  • 进入git服务器,找到用户配置页(打开http://www.mygithub.com:8080/-/profile/keys);
  • 在User Settings下面找到 SSH Keys 连接,点击进入;
  • 在右侧 Key 中填写 github_id_rsa.pub 公钥中的内容;
  • 点击按钮Add key,保存当前账户的公钥信息;

六 测试git是否可以使用

执行clone命令,conle远程库到本地;

  • 打开命令行工具,切换到代码保存路径(如:cd d:\src )。
  • git项目clone地址有两种协议如下(使用clone命令试下那种好用用那个):
    • git@www.mygithub.com:github/my-test-project.git
    • http://www.mygithub.com:8080/github/my-test-project.git
  • clone代码:
    • git clone http://www.mygithub.com:8080/github/my-test-project.git
    • 如果正常连接到服务器,会弹出一个输入用户名、密码界面;
  • 测试下是否可以编辑提交
    • 随便修改一个文件(readme.md),之后执行以下四个命令,将修改推到git上
    • git status
    • git add .\test\readme.md
    • git commit -m ‘+3007’
    • git push

七、总结

通过以上配置,可以方便的在多个库中切换账号。我们只需要在conle的根目录下执行git命令即可,git会通过域名去寻找当前库需要使用的私钥,完成鉴权操作。

相关文章:

  • gitea仓库镜像同步至gitlab
  • 阿里云跨账号建立局域网
  • 深入理解RC4加密算法
  • 2023亚太杯数学建模A题思路分析 - 采果机器人的图像识别技术
  • 线程基本方法
  • 使用Pytorch从零开始构建Conditional PixelCNN
  • C#异常处理-throw语句
  • 软著项目推荐 深度学习 python opencv 火焰检测识别 火灾检测
  • C++值常用集合算法
  • 简易键值对文本解析
  • LINUX入门篇【10】---进程篇【2】---进程状态
  • TCP/IP协议、三次握手、四次挥手
  • <JavaEE> 什么是线程(Thread)?进程和线程有什么区别?
  • 性能优化中使用Profiler进行内存泄露的排查及解决方式
  • Linux 中的 ls 命令使用教程
  • 时间复杂度分析经典问题——最大子序列和
  • 【Leetcode】104. 二叉树的最大深度
  • 【个人向】《HTTP图解》阅后小结
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • CentOS6 编译安装 redis-3.2.3
  • gulp 教程
  • iOS 系统授权开发
  • JavaScript新鲜事·第5期
  • mysql 数据库四种事务隔离级别
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • spring-boot List转Page
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 搞机器学习要哪些技能
  • 类orAPI - 收藏集 - 掘金
  • 离散点最小(凸)包围边界查找
  • 力扣(LeetCode)21
  • 码农张的Bug人生 - 见面之礼
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 软件开发学习的5大技巧,你知道吗?
  • 算法-插入排序
  • 我看到的前端
  • 项目管理碎碎念系列之一:干系人管理
  • 一些关于Rust在2019年的思考
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 源码安装memcached和php memcache扩展
  • 怎么把视频里的音乐提取出来
  • RDS-Mysql 物理备份恢复到本地数据库上
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​一些不规范的GTID使用场景
  • #{}和${}的区别?
  • #大学#套接字
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (2.2w字)前端单元测试之Jest详解篇
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (附源码)计算机毕业设计高校学生选课系统
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (十三)Maven插件解析运行机制