一台电脑上的git同时使用两个github账户

本文介绍如何在同一台电脑上配置两个不同的GitHub账号,并通过SSH密钥实现无密码操作。主要步骤包括生成两个SSH密钥对、添加私钥、创建配置文件、部署SSH公钥以及测试验证。

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

需求:

公司有github账号,自己有github账号,想在git上同时使用,两者互不干扰。

思路:

管理两个SHH key。

解决方案:

一、生成两个SSH key

为了举例方便,这里使用“one”和“two”两个账户。下同。

$ ssh-keygen -t rsa -C “one@gmail.com”

$ ssh-keygen -t rsa -C “two@gmail.com”

不要一路回车,分别在第一个对话的时候输入重命名(id_rsa_one和id_rsa_two),这样会生成两份包含私钥和公钥的4个文件。

注1:ssh-keygen是linux命令,可以让两个机器之间使用ssh而不需要用户名和密码

住2:一定要在~/.ssh路径下运行命令行,不然生成的文件不会出现在当前目录

二、添加私钥

1、打开ssh-agent

(1)如果你是github官方的bash:

$ ssh-agent -s
(2) 如果你是其它,比如msysgit:

eval(ssh-agent -s)

2、添加私钥

$ ssh-add ~/.ssh/id_rsa_one

$ ssh-add ~/.ssh/id_rsa_two

三、创建config文件

$ touch config

此时会出现空的config文件,然后添加如下内容:

复制代码

one(one@gmail.com)

Host one.github.com

  HostName github.com

  PreferredAuthentications publickey

  IdentityFile ~/.ssh/id_rsa_one

  User one

two(two@ gmail.com)

Host two.github.com

  HostName github.com

  PreferredAuthentications publickey

  IdentityFile ~/.ssh/id_rsa_two

  User two
复制代码

四、部署SSH key

分别登陆两个github账号,进入Personal settings –> SSH and GPG keys:

点击”new SSH key”, 把下面两个公钥的内容分别添加到相应的github账号中。

五、远程测试【可跳过】

$ ssh –T one.github.com

$ ssh –T two.github.com

六、使用

1、clone到本地

(1)原来的写法:

$ git clone git@github.com: one的用户名/learngit.git
(2)现在的写法:

$ git clone git@one.github.com: one的用户名/learngit.git

$ git clone git@two.github.com: two的用户名/learngit.git

2、记得给这个仓库设置局部的用户名和邮箱:

$ git config user.name “one_name” ; git config user.email “one_email”

$ git config user.name “two_name” ; git config user.email “two_email”

3、上述都成功后,会发现钥匙会由灰变绿。

### 如何在同一台机器上配置Git使用Gitee和GitHub的不同HTTPS凭证 对于希望在同一台计算机上同时管理 Gitee 和 GitHub 项目的开发者来说,合理配置 HTTPS 认证方式至关重要。相较于 SSH 方式的多账户配置,HTTPS 凭证的处理主要依赖于 Git Credential Manager 或者通过 `.gitconfig` 文件中的 URL 替换来实现。 #### 使用 Git Credential Manager (GCM) 现代版本的 Git 已经集成了 Git Credential Manager,在首次访问私有仓库时会提示输入用户名和密码(或个人访问令牌),并自动缓存这些信息以便后续操作无需重复输入。为了区分不同的远程服务器: - 安装最新版 Git 及其附带的 Git Credential Manager。 - 对于每一个需要区别的服务提供商(如 Gitee 和 GitHub),创建独立的身份验证凭据——即各自的 Personal Access Token (PAT),而不是传统的用户名/密码组合[^2]。 ```bash # 设置默认行为为交互模式,确保每次都能正确选择对应的服务商身份验证 git config --global credential.helper manager-core ``` #### 利用 .gitconfig 中的 URL 替换功能 如果不想安装额外工具,则可以在本地用户的 `.gitconfig` 文件里定义特定前缀映射规则来间接指定不同站点下的认证数据源: ```ini [url "https://gitee.com/"] insteadOf = https://example-gitee/ [url "https://github.com/"] insteadOf = https://example-github/ ``` 上述配置意味着当提交至 `https://example-gitee/project.git` 地址时会被重定向到实际地址 `https://gitee.com/project.git` 并触发相应的 PAT 请求;同理适用于 GitHub 的情况。 另外一种方法是在项目级别的 `.git/config` 文件内直接写明完整的带有授权信息的 URL: ```ini [remote "origin"] url = https://${USERNAME}:${TOKEN}@gitee.com/${USER}/${REPO}.git fetch = +refs/heads/*:refs/remotes/origin/* ``` 这里 `${USERNAME}`,`${TOKEN}` 是指代具体的用户名和个人访问令牌变量名,而 `${USER}` 和 `${REPO}` 表示具体库的信息。这种方式虽然简单粗暴但是不够灵活安全,建议仅作为临时解决方案[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值