Git - 本地同时配置GitHub、Gitlab、Gitee的SSH-Key

本文详细介绍了如何在mac和windows环境下为gitlab,github,gitee生成并配置SSH密钥,包括创建不同平台的密钥文件,将.pub内容添加到各个平台,编写.ssh/config文件以共同使用这些密钥,以及验证配置的正确性。此外,还提到了本地Git用户配置和可能的加速通道设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:生成各平台的密钥

1.配置gitlab的ssh-key:

命令行操作输入,期间会要求输password,不用输入,直接按键enter即可:

1.mac环境下
//进入.ssh路径
$ cd ~/.ssh
//生成gitlab密钥,-f id_rsa_gitlab 为指定文件名,默认为id_rsa
//             【-C "GitlabAccount"为描述信息,选填】
$ ssh-keygen -t rsa -C "你的gitlab邮箱" -f id_rsa_gitlab -C "GitlabAccount"


2.windows环境下
$ cd C:\Users\Administrator\.ssh
$ ssh-keygen -t rsa -C "你的gitlab邮箱" -f id_rsa_gitlab -C "GitlabAccount"

2.配置github的ssh-key:

命令行操作输入:

1.mac环境下
//进入.ssh路径
$ cd ~/.ssh
//生成GitHub密钥【-f id_rsa_github 为指定文件名,默认为id_rsa】
//             【-C "GithubAccount"为描述信息,选填】
$ ssh-keygen -t rsa -C "你的github邮箱" -f id_rsa_github -C "GithubAccount"


2.windows环境下
$ cd C:\Users\Administrator\.ssh
$ ssh-keygen -t rsa -C "你的github邮箱" -f id_rsa_github -C "GithubAccount"

3.配置gitee的ssh-key:

命令行操作输入:

1.mac环境下
//进入.ssh路径
$ cd ~/.ssh
//生成Gitee密钥,-f id_rsa_gitee 为指定文件名,默认为id_rsa
//             【-C "GithubAccount"为描述信息,选填】
$ ssh-keygen -t rsa -C "你的gitee邮箱" -f id_rsa_gitee -C "GiteeAccount"


2.windows环境下
$ cd C:\Users\Administrator\.ssh
$ ssh-keygen -t rsa -C "你的gitee邮箱" -f id_rsa_gitee -C "GiteeAccount"

 4.将每个密钥.pub文件打开,复制其内容,粘贴到对应github、gitlab、gitee官网里创建的ssh-key里

 二:将多个平台密钥共同写入配置

这一步才能使每个密钥在本地环境生效


//命令行执行,创建config文件
$ touch ~/.ssh/config

//可以看到.ssh文件下有个config文件,文本方式打开
//输入以下内容后保存即可:
Host github.com
HostName github.com
User 你的github邮箱                
IdentityFile ~/.ssh/id_rsa_github
 
Host gitlab.xxx.cn                //host后边为公司gitlab域名
HostName gitlab.xxx.cn            //同上为公司gitlab域名
User 你的gitlab邮箱                
IdentityFile ~/.ssh/id_rsa_gitlab

Host gitee.com
HostName gitee.com
User 你的gitee邮箱
IdentityFile ~/.ssh/id_rsa_gitee
PreferredAuthentications publickey

 三:验证

//命令行输入测试连接
$ ssh -T git@github.com
$ ssh -t git@gitlab.xxx.cn
$ ssh -t git@gitee.com

四.本地相关配置 

//本地配置
$ git config --local user.name  '你的gitlab账号名'   
$ git config --local user.email  '公司账号邮箱' 
//全局配置
$ git config --global user.name  '你的github账号名' 
$ git config --global user.email  '你的github账号邮箱'

五.配置加速通道

 测试:

        ssh -T git@git.zhlh6.cn

可以直接在仓库的config里修改仓库地址格式:

将地址改为:

 

<think>好的,用户想要在同一环境中同时配置和使用GitHubGitee。首先,我需要回忆一下相关的配置步骤。根据提供的引用内容,配置多个SSH密钥是关键。用户可能需要生成不同的密钥对,并为每个平台配置对应的Host。 首先,生成SSH密钥部分,引用5提到可以不用邮箱生成公钥,这样可能实现一个公钥共用,但引用3和4则建议生成不同的密钥,比如github_id-rsa和gitee_id-rsa。这可能更安全,避免账号冲突。用户需要确认是要共用还是分开,但通常分开更稳妥。 接下来,配置config文件,引用3给出了示例,设置不同的Host指向不同的密钥文件。这一步很重要,确保Git能根据不同的仓库地址使用对应的密钥。 然后是仓库级别的配置,引用2提到在本地仓库设置不同的用户名和邮箱,这样不同项目可以归属到不同的账号。全局配置可能需要留空,或者在需要的时候覆盖。 另外,引用4提到清除已有的git配置,可能用户之前有全局设置,需要先清理。测试连接的部分,使用ssh -T命令检查是否成功,如引用3中的例子。 可能的问题点在于用户是否清楚每个步骤的作用,比如config文件的格式是否正确,密钥权限设置是否到位。需要提醒用户注意文件权限,比如.ssh目录应为700,私钥文件为600,避免权限问题导致失败。 此外,用户可能需要知道如何克隆和设置远程仓库,尤其是当使用不同Host别名时,比如gitee.com和github.com对应的仓库URL是否需要调整。比如,如果配置了Host别名,克隆时可能需要使用对应的Host名称,但通常保持原来的域名即可,因为HostName还是正确的。 最后,需要测试配置是否生效,确保push和pull到不同平台时身份正确,没有权限错误。如果用户遇到问题,可能需要检查ssh -vT的详细日志,或者重新检查config文件的语法是否正确。</think>### 分步配置指南:同时使用 GitHubGitee #### 一、生成独立的 SSH 密钥对 1. **生成 GitHub 密钥** ```bash ssh-keygen -t rsa -f ~/.ssh/github_id_rsa -C "github@example.com" ``` (替换 `github@example.com` 为 GitHub 注册邮箱) 2. **生成 Gitee 密钥** ```bash ssh-keygen -t rsa -f ~/.ssh/gitee_id_rsa -C "gitee@example.com" ``` (替换 `gitee@example.com` 为 Gitee 注册邮箱) #### 二、配置 SSH 代理规则 1. **创建 `~/.ssh/config` 文件** ```bash touch ~/.ssh/config chmod 600 ~/.ssh/config ``` 2. **添加以下内容** ```text # GitHub Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github_id_rsa # Gitee Host gitee.com HostName gitee.com PreferredAuthentications publickey IdentityFile ~/.ssh/gitee_id_rsa ``` (通过 `Host` 字段区分平台,`IdentityFile` 指向对应密钥文件[^3]) #### 三、添加公钥到平台 1. **GitHub 添加公钥** ```bash cat ~/.ssh/github_id_rsa.pub ``` 复制内容到 GitHub: `Settings -> SSH and GPG keys` 2. **Gitee 添加公钥** ```bash cat ~/.ssh/gitee_id_rsa.pub ``` 复制内容到 Gitee: `设置 -> SSH 公钥`[^4] #### 四、验证连接状态 1. **测试 GitHub 连接** ```bash ssh -T git@github.com ``` 成功提示:`Hi [username]! You've successfully authenticated...` 2. **测试 Gitee 连接** ```bash ssh -T git@gitee.com ``` 成功提示:`Hello [username]! You've successfully authenticated...` #### 五、配置仓库级账户隔离 1. **全局配置留空** ```bash git config --global --unset user.name git config --global --unset user.email ``` 2. **项目级单独配置** ```bash # GitHub 项目目录 git config --local user.name "github_username" git config --local user.email "github@example.com" # Gitee 项目目录 git config --local user.name "gitee_username" git config --local user.email "gitee@example.com" ``` (通过 `--local` 参数实现账号隔离[^2]) #### 六、典型操作示例 ```bash # 克隆 GitHub 仓库 git clone git@github.com:username/repo.git # 克隆 Gitee 仓库 git clone git@gitee.com:username/repo.git # 提交时自动关联对应账号 git commit -m "commit message" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值