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

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.com
  Preferredauthentications publickey
  IdentityFile ~/.ssh/github_id_rsa

# gitee
Host code.gitee.com
  Preferredauthentications publickey
  IdentityFile ~/.ssh/gitee_id_rsa

五、生成RSA秘钥对

5.1 ssh秘钥位置

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

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

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

注:ssh-keygen 命令中的admin 是git的登录账号,路径中的admin是当前操作系统的登录用户名。

--执行命令
ssh-keygen -t rsa -b 2048 -C "admin" -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会通过域名去寻找当前库需要使用的私钥,完成鉴权操作。


http://www.kler.cn/a/153904.html

相关文章:

  • 软件测试基础三十 (Python + Flask实现Mock平台搭建)
  • 统信UOS开发环境支持Golang
  • 基本数据类型:Kotlin、Dart (Flutter)、Java 和 C++ 的比较
  • 【MySql】实验十六 综合练习:图书管理系统数据库结构
  • 3. langgraph中的react agent使用 (在react agent添加系统提示)
  • ZSTD 内存泄漏问题
  • LINUX 嵌入式C编程--信号编程
  • IDEA在左下角显示当前代码所属的类名/方法名
  • vue---消息订阅与发布(pubsub)
  • 网络通信原理,进制转化总结
  • SQL Server数据库部署
  • 九、FreeRTOS之FreeRTOS列表和列表项
  • 基于ASP.NET MVC技术的图书管理系统的设计与实现
  • Discuz论坛自动采集发布软件
  • JS中 require 与 import 的区别
  • Android File Transfer for Mac:畅享强大的安卓文件传输工具
  • Sock0s1.1
  • ssh连接docker容器处理备忘
  • python处理日期和时间
  • C++模版
  • android开发:获取手机IP和UDP广播
  • 支持Upsert、Kafka Connector、集成Airbyte,Milvus助力高效数据流处理
  • 3D建模基础教程:常用修改器讲解:FFD、壳、法线、uvw展开等
  • 「Verilog学习笔记」整数倍数据位宽转换8to16
  • 抽奖送平板是骗局!!!
  • 百度智能云文字识别使用问题解决合集