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

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

一、前言

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

二、环境

  • windows 10
  • git version 2.34.0.windows.1

三、帮助文档

四、多环境配置

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 -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远程库到本地;

七、总结

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

相关推荐
Stark-C几秒前
功能齐全,支持协作 | Docker部署一款支持多人共享的私密浏览器『n.eko』
运维·docker·容器
嘟嘟Listing21 分钟前
设置jenkins时区记录
运维·jenkins
芜湖_21 分钟前
【软件入门】Git快速入门
git
嘟嘟Listing22 分钟前
jenkins docker记录
java·运维·jenkins
伴野星辰22 分钟前
小乌龟TortoiseGit 安装和语言包选择
linux·运维·服务器
hillstream324 分钟前
windows11下git与 openssl要注意的问题
git
枫叶丹429 分钟前
【在Linux世界中追寻伟大的One Piece】多线程(一)
java·linux·运维
残念ing31 分钟前
【Linux】—简单实现一个shell(myshell)
linux·运维·服务器
明月心95238 分钟前
linux mount nfs开机自动挂载远程目录
linux·运维·服务器
库库的里昂1 小时前
Linux系统Docker部署开源在线协作笔记Trilium Notes与远程访问详细教程
linux·运维·docker·开源