Github 配置多账户访问

建议点击 查看原文 查看最新内容。

原文链接: https://typonotes.com/posts/2024/09/15/github-multiple-account/

当拥有多账户的时候,可能造成账户冲突。 表现为 私有仓库有权限, 但访问时提示没权限或仓库不存在

1
2
3
4
5
6
7
$ git pull

ERROR: Repository not found.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

使用 ssh -T 查看账户

1
2
3
$ ssh -T [email protected]

Hi tangx! You've successfully authenticated, but GitHub does not provide shell access.

配置 ~/.ssh/config 主机别名

注意 两个不同的账户, 最好使用不同的 ssh key。 避免冲突

  1. new-org 替换成对应的组织信息。
  2. 使用 ControlPath 缓存不同的账户链接。 一定要将保证 链接值 不一样, 否则复用链接将造成以上权限问题。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
## .ssh/config

## 默认账户
Host github.com
  Hostname ssh.github.com
  Port 443
  IdentityFile ~/.ssh/id_rsa
  ControlPath ~/.ssh/links/default@%h:%p

## 为 组织账户 创建别名
Host new-org.github.com
  Hostname ssh.github.com
  Port 443
  User git
  IdentityFile ~/.ssh/new-org.id_rsa
  ControlPath ~/.ssh/links/new-org@%h:%p

配置 ~/.gitconfig 仓库别名

~/.gitconfig 配置仓库别名

1
2
3
4
5
6
## 使用 https 代替 ssh
[url "[email protected]:"]
	insteadOf = https://github.com/

[url "[email protected]:new-org"]
	insteadOf = https://new-org.github.com/new-org

使用 ssh 认证, 但是 https 协议参考 不用代理, 解决 Github ssh 协议方式超时失败解决方法