【问题标题】:SSH config with multiple keys for multiple gitlab user accounts具有多个 gitlab 用户帐户的多个密钥的 SSH 配置
【发布时间】:2015-06-28 19:35:00
【问题描述】:

我在我的服务器上运行 Gitlab CE,并使用几个不同的用户帐户按兴趣对我的存储库进行分组。问题在于 SSH。

我为github找到了以下解决方案:

https://gist.github.com/jexchan/2351996

在本指南中,只需在配置中使用具有相同主机名的不同主机。实现我想要实现的目标几乎没有什么努力。但是这个解决方案不适用于 Gitlab,或者至少不适用于我。

这个解决方案遍布整个网络。一个使用较少但对我有用的,是这个:

https://gist.github.com/gubatron/d96594d982c5043be6d4

在第二种情况下,将子域名分配为 ssh 配置中具有相同主机名的主机,并在 git 配置中使用相同的子域。 小例子:

SSH 配置:

Host user1.git.mydomain.at
  HostName git.mydomain.at
  IdentityFile ~/.ssh/id_rsa_user1

Host user2.git.mydomain.at
  HostName git.mydomain.at
  IdentityFile ~/.ssh/id_rsa_user2

混帐:

git remote set-url origin admin@user1.git.mydomain.at:user1/foo.git
git remote set-url origin admin@user2.git.mydomain.at:user2/foo.git

可以看到,我必须手动更改每个 repo url。我想避免这种情况,并且更喜欢第一种解决方案。

我错过了什么重要的东西吗?

【问题讨论】:

  • admin@?不应该是git@吗?
  • 通常是git。但我不拥有服务器。所以我只能使用我自己的用户名,这也是指南建议的设置方式。这与我发布的问题有关吗?
  • 如果网址正常,那么没关系。
  • 正如我在上面的问题中所述。网址正在工作。如果我只使用配置中的一个 ssh 键,git 命令也可以工作。但是有多个我有问题。
  • 我不明白你在问什么。您引用的两种解决方案都是相同的,除了 Host 的命名约定不同。任何一种解决方案都应该同样有效,所以如果一个有效而另一个无效,那么您的问题就是缺少一些相关信息。

标签: git ssh gitlab


【解决方案1】:

两者都需要。

假设:

  1. 用户名(不是电子邮件)分别是 user1user2

  2. 您已上传足够的 public(即.pub)密钥,其各自的私钥是 user1_rsauser2_rsa

  3. 服务器 url 格式为 server.com(即用 bitbucket.orggithub.com 等替换 server.com .) 那么~/.ssh/config 应该包含:

    Host server.com-user1
      HostName server.com
      User git
      IdentityFile ~/.ssh/user1_rsa
    
    Host server.com-user2
      HostName server.com
      User git
      IdentityFile ~/.ssh/user2_rsa
    

II. 在你的 git 目录中,假设你添加了一个名为 origin 的源,并且在一个名为 domain 的域和一个名为 project 的项目中,那么 git remote -v 应该配置为返回如下内容:

origin  git@server.com-user1:domain/project.git (fetch)
origin  git@server.com-user1:domain/project.git (push)

  • 您可以首先通过使用git remote add origin git@bitbucket.org-user1:domain/project.git 添加远程目录来获得此输出。关键是额外的 -user1,带有破折号,在两个文件中都匹配,并且与您的 用户名 匹配。
  • 您也可以在事后编辑.git/config并手动添加-user1

【讨论】:

    猜你喜欢
    • 2017-07-02
    • 2022-01-21
    • 2016-10-20
    • 1970-01-01
    • 2014-09-11
    • 2011-03-14
    • 1970-01-01
    相关资源
    最近更新 更多