GitLab 配置 SSH 密钥完整教程

前言

在使用 GitLab 进行代码管理时,配置 SSH 密钥可以让我们免去每次推送/拉取代码时输入用户名和密码的麻烦。本文将详细介绍如何在 Windows 系统下配置 GitLab 的 SSH 密钥。

一、配置 Git 用户信息

首先,打开 CMD 命令提示符 或 PowerShell,配置你的 Git 全局用户名和邮箱:

git config --global user.name "你的用户名"

git config --global user.email "你的邮箱"

> 说明:这里的用户名和邮箱建议与你的 GitLab 账户保持一致。

二、生成 SSH 密钥对

执行以下命令生成 RSA 密钥对:

ssh-keygen -t rsa -b 4096 -C "你的邮箱"

参数说明:

  • -t rsa:指定密钥类型为 RSA
  • -b 4096:指定密钥长度为 4096 位(更安全)
  • -C:添加注释,通常使用邮箱作为标识

执行后会提示:

  1. 输入密钥保存路径(直接回车使用默认路径)
  1. 输入密钥密码(可直接回车跳过,不设置密码)
  1. 确认密码(再次回车)

三、找到公钥文件

生成的密钥对默认保存在以下路径:

C:\Users\你的用户名\.ssh\

该目录下会有两个文件:

  • id_rsa:私钥文件(请妥善保管,不要泄露!)
  • id_rsa.pub:公钥文件(需要添加到 GitLab)

四、添加公钥到 GitLab

  1. 用记事本或其他编辑器打开 id_rsa.pub 文件
  1. 复制全部内容(以 ssh-rsa 开头,以邮箱结尾)
  1. 登录 GitLab 网站
  1. 点击右上角头像 → Settings(设置)
  1. 在左侧菜单找到 SSH Keys
  1. 将复制的公钥内容粘贴到 Key 输入框
  1. 填写一个 Title(如:我的工作电脑)
  1. 点击 Add key 按钮

五、验证配置

配置完成后,可以通过以下命令验证是否成功:

ssh -T git@你的gitlab域名

如果看到类似 Welcome to GitLab, @用户名! 的提示,说明配置成功!

六、克隆代码

现在就可以使用 SSH 方式克隆代码了:

git clone git@gitlab.xxx.com:group/project.git

常见问题

Q1:提示 "Permission denied (publickey)"

  • 检查公钥是否正确添加到 GitLab
  • 确认私钥文件权限是否正确
  • 尝试使用 ssh-add 命令添加私钥

Q2:已有 SSH 密钥,不想覆盖怎么办?

可以在生成时指定不同的文件名,然后在 ~/.ssh/config 中配置多个密钥。

总结

步骤 命令/操作
1. 配置用户名 git config --global user.name "xxx"
2. 配置邮箱 git config --global user.email "xxx@xxx.com"
3. 生成密钥 ssh-keygen -t rsa -b 4096 -C "xxx@xxx.com"
4. 添加公钥 复制 id_rsa.pub 内容到 GitLab SSH Keys
5. 拉取代码 git clone git@gitlab.xxx.com:xxx/xxx.git

希望这篇教程对你有帮助!如有问题欢迎评论区交流~ 🎉

相关推荐
火山引擎开发者社区2 小时前
云数据库 MySQL 2025 运维革新:大版本升级无忧+蓝绿零停机+存储自动扩容全覆盖
运维·数据库·mysql
Full Stack Developme6 小时前
Linux 多种压缩格式,优缺点和适用场景
linux·运维·服务器
yBmZlQzJ10 小时前
财运到内网穿透域名解析技术机制与中立评估
运维·经验分享·docker·容器·1024程序员节
Shanxun Liao10 小时前
Cenots 7.9 配置多台 SSH 互信登陆免密码
linux·运维·ssh
j_xxx404_10 小时前
Linux:第一个程序--进度条|区分回车与换行|行缓冲区|进度条代码两个版本|代码测试与优化
linux·运维·服务器
一点晖光10 小时前
jenkins优化记录
运维·jenkins
最贪吃的虎12 小时前
Git: rebase vs merge
java·运维·git·后端·mysql
yBmZlQzJ12 小时前
内网穿透工具通过端口转发实现内外网通信
运维·经验分享·docker·容器·1024程序员节
DeepHacking12 小时前
Overleaf 本地Docker部署
运维·docker·容器