资源描述
Github多账户多工程管理配置教程linux操作系统 电脑资料
下面我们一起来看看关于Github多账户多工程配置教程,希望此教程对各位同学会有所帮助,
在 Github 创立了多个仓库,并为每个仓库使用了独立的 deploy key,结果在进行 git push 操作时,提示没有权限。错误信息类似:
ERROR: Permission to quyun/php-backend.git denied to quyun/aliyun-api-tools
官方的帮助中有提到这个错误:
s://help.github./articles/error-permission-to-user-repo-denied-to-user-other-repo
不过对于许多应用场景,使用一个全局的 key 并不能满足要求。
简单分析下,我们可以发现 ssh 客户端是通过类似:
git@github.:quyun/aliyun-api-tools.git
这样的 git 地址中的 user 和 host 来识别使用哪个本地私钥的。
很明显,如果 user 和 host 始终为 git 和 github.,那么就只能使用一个私钥。
指定私钥的方式也很简单, ~/.ssh/config,添加类似如下配置即可:
Host php-backend.github.quyun.
IdentityFile ~/.ssh/github-php-backend
User git
Host aliyun-api-tools.github.quyun.
IdentityFile ~/.ssh/github-aliyun-api-tools
User git
配置格式很简单,不多做解释,
光是这样指定当然不够,你会发现我这里的 host 已经不是 github. 了。
我为每个仓库使用了自己的 host,每个 host 的域名做 AME 解析到 github.,这样 ssh 在连接时就可以区别不同的仓库了。
来测试下:
# ssh -T git@php-backend.github.quyun.
Hi quyun/php-backend! You’ve suessfully authenticated, but GitHub does not provide shell aess.
# ssh -T git@aliyun-api-utils.github.quyun.
Hi quyun/aliyun-api-tools! You’ve suessfully authenticated, but GitHub does not provide shell aess.
可以看到 ssh 已经能够根据不同 host 使用不同私钥了。
git@github.:quyun/aliyun-api-tools.git
改为:
git@aliyun-api-tools.github.quyun.:quyun/aliyun-api-tools.git
在 windows 下也会出现这个问题,用同样的方式解决即可!
展开阅读全文