Skip to content
On this page

SSH 密钥访问 GitHub/GitLab/gitee

首次使用配置全局用户名/邮箱:

bash
git config --global user.name "你的GitHub用户名"
git config --global user.email "你的GitHub注册邮箱"

查看 Git 配置

bash
git config --list

2. 生成 SSH 密钥

bash
ssh-keygen -t rsa -C "你的GitHub注册邮箱"

3. 添加 SSH 密钥到 ssh-agent

bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

4. 添加 SSH 密钥到 GitHub/GitLab

将 SSH 公钥添加到 GitHub/GitLab 账户中,以便 GitHub/GitLab 可以验证你的身份。

查看公钥:cat ~/.ssh/id_rsa.pub(Windows 也可用 notepad ~/.ssh/id_rsa.pub)

将公钥添加到 GitHub / GitLab / Gitee 等平台:Settings → SSH and GPG keys → New SSH key

测试连接:

bash

bash
ssh -T git@github.com

5. 配置 SSH 密钥

bash
git remote set-url origin git@github.com:用户名/仓库名.git

关于用户名/邮箱的影响

  • 全局配置会影响所有仓库的提交记录(显示在 GitHub/GitLab 的提交历史中)。

  • 不会影响各平台的登录账号(登录凭据由 SSH 或 HTTPS 单独管理)。

  • 建议:为工作仓库单独设置局部配置,避免混淆:

bash
cd 公司项目目录
git config user.name "公司用户名"
git config user.email "公司邮箱@example.com"

SSH 密钥在多平台使用

同一个公钥可以添加到多个平台(GitHub、GitLab 等),技术上可行。

更推荐:每个平台单独生成密钥对,便于管理和撤销权限。

单独生成示例(GitLab):

bash
ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/id_ed25519_gitlab
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519_gitlab

管理多个密钥:创建 ~/.ssh/config

bash
Host gitlab.com
    HostName gitlab.com
    User git
    IdentityFile ~/.ssh/id_ed25519_gitlab
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_github

SSH 密钥的撤销

GitHub/GitLab 等平台提供了 SSH 密钥的撤销功能,但无法撤销已经添加到 ssh-agent 的密钥。

如果需要撤销 SSH 密钥,需要手动删除密钥文件(~/.ssh/id_rsa 和 ~/.ssh/id_rsa.pub)。

上次更新于: