一台电脑配置多个github账号

本文详细介绍了如何使用SSH密钥进行GitHub账户的身份验证,特别关注于多账户的配置过程。从生成SSH密钥对开始,到在GitHub上添加公钥,再到解决多账户使用时的冲突,通过配置config文件实现不同远程服务器匹配不同的私钥。

ps:
一对ssh秘钥只能认证一个gitHub,不能一对ssh认证多个gitHub账户.(需要生成多对ssh)

对于单账户使用:将生成的公钥在gitHub中的setting中添加,当进行远程操作的时候,本地会默认用 id_rsa去解密

对于多账户使用: 当远程操作的时候,本地多个私钥,他会默认使用 id_rsa去解密,自然解密错误,所以需要配置config文件,配置不同的远程服务器匹配不同的私钥.(config在 .ssh文件中创建就行)

1 首先使用git bash here客户客户端工具,生成本地ssh秘钥 :(可以生成多个,秘钥名字不要重复,否则会覆盖 )
在这里插入图片描述
2 生成的公钥在gitHub中添加认证(以 .pub结尾的是公钥)
在这里插入图片描述
3 ssh公钥认证,打开 setting 页面
在这里插入图片描述
4 可以设置多个权限(团队协作人员)
在这里插入图片描述
5 配置公钥秘钥配对(在ssh中新建 config)
在这里插入图片描述
在这里插入图片描述
6 验证ssh公钥配置且解且能够解密是否成功:
ssh -T git@github.com
在这里插入图片描述 成功

### 配置不同Git账号提交代码(不使用SSH config) 在不使用SSH配置文件的前提下,可以通过为每个Git账号生成独立的SSH密钥,并在每次提交代码时手动指定SSH密钥来实现多个Git账号的管理。 #### 生成独立SSH密钥 为每个Git账号生成一组独立的SSH密钥。例如,针对GitHubGitLab分别生成不同的密钥: ```bash # 生成GitHub账号的SSH密钥 ssh-keygen -t rsa -C "github@example.com" -f ~/.ssh/id_rsa_github # 生成GitLab账号的SSH密钥 ssh-keygen -t rsa -C "gitlab@example.com" -f ~/.ssh/id_rsa_gitlab ``` 生成密钥后,需要将对应的公钥内容(`.pub`文件)添加到对应平台的SSH密钥管理界面中。 #### 手动指定SSH密钥进行Git操作 每次执行Git操作时,可以通过`GIT_SSH_COMMAND`环境变量指定使用的SSH密钥。例如克隆仓库时可以这样操作: ```bash # 使用GitHub的SSH密钥克隆仓库 GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_github" git clone git@github.com:username/repo.git # 使用GitLab的SSH密钥克隆仓库 GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_gitlab" git clone git@gitlab.com:username/repo.git ``` 提交代码时,同样可以使用该方式指定SSH密钥: ```bash # 提交代码时指定GitHub的SSH密钥 GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_github" git push origin main # 提交代码时指定GitLab的SSH密钥 GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_gitlab" git push origin main ``` 这种方式避免了对`~/.ssh/config`文件的依赖,同时确保了不同账号之间的隔离性[^1]。 #### 配置本地仓库用户信息 每个Git仓库可以配置独立的用户名和邮箱信息,以确保提交记录与对应账号一致: ```bash cd repo_path git config user.name "GitHubUser" git config user.email "github@example.com" ``` 对于另一个仓库: ```bash cd another_repo_path git config user.name "GitLabUser" git config user.email "gitlab@example.com" ``` 通过这种方式,可以确保提交记录与对应的Git账号保持一致,避免混淆。 #### 简化操作方式 为了避免重复输入SSH密钥路径,可以将常用命令封装为别名: ```bash # ~/.bashrc 或 ~/.zshrc 中添加 alias git-github='GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_github" git' alias git-gitlab='GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_gitlab" git' ``` 然后执行: ```bash source ~/.bashrc # 或 source ~/.zshrc ``` 使用时可以直接运行: ```bash git-github clone git@github.com:username/repo.git git-gitlab clone git@gitlab.com:username/repo.git ``` 这样可以在不依赖SSH配置文件的前提下,灵活地管理多个Git账号。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值