如何优雅的使用ssh-key访问多个git仓库

背景

最近公司给换了新电脑,又要重新整理环境了。自己管理的代码在各种远程仓库都有存储:

a、gitee账号:用于自己进行一些开发活动;

b、gitlab账号:公司私有git服务;

c、github账号:用于自己关注学习开源项目;

如何优雅的配置,就能同时访问3个远程仓库呢?问了身边的同事,配置五花八门的(不配置,使用http;一个仓库配置一个秘钥),其实共用一个ssh密钥对就好了,把公钥配置到各个仓库账号中

要在客户端上配置SSH以访问GitLab,你需要遵循以下步骤。这个过程涉及到生成SSH密钥对、将公钥添加到你的GitLab账户中,并在Windows系统上配置SSH以使用这个密钥。

步骤 1: 生成SSH密钥对

  1. 打开命令提示符(或PowerShell);
  2. 输入以下命令来生成新的SSH密钥对(如果你已经有密钥,可以跳过这一步);
bash 复制代码
ssh-keygen -t rsa -b 4096 -C "秘钥标识"
  • sh-keygen:这是生成 SSH 密钥对的命令行工具。
  • -t rsa:指定密钥类型为 RSA。
  • -b 4096:指定密钥长度为 4096 位。较长的密钥长度提供了更高的安全性。
  • -C "秘钥标识":添加注释,用于标识密钥对。这里的"秘钥标识"是一个字符串,可以根据需要自定义,用于描述密钥的用途或拥有者。
  1. 根据提示,选择一个文件路径来保存密钥(例如,C:\Users\YourUsername.ssh\id_rsa),或者直接按回车使用默认路径。
  2. 为你的密钥设置一个密码(可选),这将增加安全性,但每次使用密钥时都需要输入密码,建议不设置

步骤 2: 复制公钥到剪贴板

  1. 打开文件资源管理器,导航到你的私钥文件所在的位置(例如C:\Users\YourUsername.ssh\)。
  2. 找到你的公钥文件(通常是id_rsa.pub),右键点击它,选择"编辑"打开。
  3. 全选公钥内容(通常是几行文本,以ssh-rsa开头),然后复制。

步骤 3: 将公钥添加到GitLab账户

这里以gitee为例,其他git服务器配置类似

  1. 登录到你的Gitee账户。
  2. 进入"用户设置"(通常在页面右上角,点击你的头像或用户名)。
  3. 选择"SSH Keys"选项。
  4. 点击"Add Key"按钮。
  5. 将之前复制的公钥粘贴到"Key"字段中。
  6. 更新标题(例如"My Work Laptop",默认为生成密码是的 -c 的内容),然后点击"Add Key"。

步骤 4: 在Windows上配置SSH以使用这个密钥

  1. 打开或创建C:\Users\YourUsername.ssh\config文件(如果没有这个文件,就创建一个,config是一个无扩展名的文件)。
  2. 在文件中添加以下内容来配置你的GitLab服务器:
txt 复制代码
Host gitee.com 
    HostName gitee.com
    User git 
    IdentityFile C:\Programs\ssh-config\id_rsa 
    IdentitiesOnly yes

确保 IdentityFile 的路径正确指向你的私钥文件。

  1. 保存并关闭文件。

说明: 添加一个远程仓库,就在config文件中添加一份上述配置,主要Host 和 HostName 要设置为对应的域名

步骤 5: 测试SSH连接

  1. 在命令提示符或PowerShell中,运行以下命令来测试SSH连接:
bash 复制代码
ssh -T git@gitee.com
  1. 如果一切设置正确,你应该会看到一条消息,确认你已成功连接到GitLab。

通过以上步骤,你应该能够在Windows客户端上配置SSH以访问GitLab了。如果遇到任何问题,检查路径、权限和配置文件是否有误。

相关推荐
bxp13212 小时前
gitlab add an ssh key 多个ssh配置
运维·ssh·gitlab
biubiubiu07062 小时前
git切换版本
git
edge011 小时前
git的使用
git
m0_7482480215 小时前
Redis Desktop Manager(Redis可视化工具)安装及使用详细教程
redis·git·bootstrap
Mr. zhihao16 小时前
如何找回已删除的 Git 远程和本地分支
git
sensen_kiss19 小时前
Git和GitHub基础教学
git·github
向贤19 小时前
Git常用命令全面分类总结
git
BetterJason20 小时前
不小心更改了/etc权限为777导致sudo,ssh等软件都无法使用
运维·ssh
Codeking__1 天前
Linux——工具(3)git——版本控制器
linux·服务器·git