我有两个bitbucket账户和ssh键需要匹配,我见过manysolutions到manage通过别名在同一主机上使用多个键,但不幸的是,我需要git引用是通用的。
我需要它们是通用的原因是因为我正在用Pods开发共享项目,这意味着远程git源代码的url对于所有开发项目的开发者来说是相同的,但是我不能保证每个人都能设置和我一样的别名,也不应该期望他们这样做。
我曾尝试过这样指定用户帐户的愚蠢尝试:
Host BitbucketA
HostName bitbucket.org
IdentityFile ~/.ssh/id_rsa
User UserA
Host BitbucketB
HostName bitbucket.org
IdentityFile ~/.ssh/id_rsa_userB
User UserB
我想我可以指定使用id_rsa_userB来访问UserB的存储库,但不幸的是,这似乎不是它的工作方式。
有什么办法可以实现我的愿望吗?
3条答案
按热度按时间d8tt03nd1#
你真的很接近一个解决方案,这基本上是我所做的,它确实工作。看到我的答案和下面的链接。
下面是我如何在Mac上为同一服务器上的两个帐户设置ssh密钥:
只有当您在同一个Git远程仓库上登录了两个不同的账户时,才需要这样做。
创建两个SSH密钥:
将此添加到
~/.ssh/config
:SSH将
Host
名称转换为User
前面的HostName
,并选择IdentityFile
。这允许使用不同的ssl证书对同一URL进行两次或多次repos。另见Nerderati:~/.ssh/config & git
iyr7buue2#
您可以使用一对shell脚本和一个环境变量:
......第二个标识文件也是如此。(最后一行的调用假定
$PATH
上有~/bin
)。这种笨拙的原因是Git将
$GIT_SSH
直接传递给exec()
而不是/bin/sh -c
等,因此不执行通常的 shell 扩展。调试时,你也可以使用
GIT_TRACE=1
让Git显示正在执行的内容,并修改脚本,将-vvv
传递给ssh
,以报告正在执行的内容(包括它使用的密钥(标识文件))。wswtfjt73#
我写了一个要点:https://gist.github.com/yinzara/bbedc35798df0495a4fdd27857bca2c1
您可以使用目录管理同一主机的多个密钥。