如何优雅的使用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了。如果遇到任何问题,检查路径、权限和配置文件是否有误。

相关推荐
闲云一鹤16 小时前
Git LFS 扫盲教程 - 你不会还在用 Git 管理大文件吧?
前端·git·前端工程化
vibecoding日记4 天前
为什么我就想要「线性历史 + Signed Commits」,GitHub 却把我当猴耍 🤬🎙️
git·编程工具
程序员小崔日记4 天前
如何将代码轻松上传到 Gitee?Git 使用全攻略!
git·gitee·上传
埃博拉酱5 天前
VS Code Remote SSH 连接 Windows 服务器卡在"下载 VS Code 服务器":prcdn DNS 解析失败的诊断与 BITS 断点续传
windows·ssh·visual studio code
Bigger5 天前
为什么你的 Git 提交需要签名?—— Git Commit Signing 完全指南
git·开源·github
DianSan_ERP6 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
zhangfeng11336 天前
趋动云 如何ssh登录 服务区 项目server
运维·人工智能·ssh
红豆子不相思6 天前
Tomcat 环境搭建与集群实战
服务器·git·tomcat
杰哥技术分享6 天前
Git 仓库迁移技术文档:从 CODING.net 迁移至腾讯云 CNB
git