【问题标题】:Can I Add Local Users to Manage a Gitolite Repository with SSH?我可以添加本地用户以使用 SSH 管理 Gitolite 存储库吗?
【发布时间】:2013-10-16 12:00:22
【问题描述】:

我正在尝试为 Jenkins 添加一个用户(但我猜任何本地用户都会遇到同样的问题)以连接 到 Gitolite 服务器,其中 在同一个盒子上

  • 我为 Jenkins 生成了 SSH 密钥。
  • 我将公钥添加到 Gitolite 的配置中。
  • 我可以使用 Jenkins 在我的 localhost 服务器上连接到 SSH。
  • 我正在使用 SSH 连接到 Gitolite

例如,以下确实有效

sudo su jenkins
ssh localhost

但以下不起作用

sudo su - jenkins
git clone jenkins@localhost:my-repo

它总是在说

您似乎克隆了一个空存储库

但以下确实有效

sudo su - jenkins
git clone gitolite@localhost:my-repo

我想我找到了为什么它不起作用,但我想知道是否有替代方法。

gitolite 的 .ssh 文件夹中有一个 authorized_keys 文件,其中包含“命令”和 jenkins 的公钥。我想这是为了设置正确的 shell 来使用 gitolite。但是,Jenkins 的 ~/.ssh 文件夹中还有一个 authorized_keys

我想当我尝试使用用户“jenkins”连接到 gitolite 时,使用 jenkins 的“家”而不是 gitolite 存储库,因此它试图在 Jenkins 的家中找到存储库。

有没有办法可以使用 Jenkins(与 Gitolite 服务器在同一个盒子上)连接到 gitolite 而不会出现这个问题?

【问题讨论】:

    标签: git ssh jenkins gitolite


    【解决方案1】:

    URL 前面的 gitolite@ 实际上并不是您在 SSH 中使用的用户。它是服务器上的服务(我假设),所以 gitolite@localhost:my-repo 是完全有效的。

    在使用 GIT 时,您会一直看到对 git@ 的引用。您的服务是 gitolite,因此 gitolite@ 将始终被使用。

    Git 服务器使用 SSH 公钥进行身份验证,因此您创建的密钥允许用户连接到服务器。该密钥也与该用户相关,因此当使用该密钥时,假定该用户发出 git 命令,例如提交。

    顺便说一句,当我第一次开始使用我们的 GIT 系统时,一位同事推荐了 http://documentup.com/skwp/git-workflows-book,这对理解这个真正出色的版本控制系统有很大帮助。

    【讨论】:

    • 你是说我试图让“git clone jenkins@localhost:my-repo”工作 4 小时......一无所获?我认为 git@... 实际上是用户。该死。这解释了一些事情。 :)
    • 好的,我现在明白了。我在“gitolite”用户下安装了 Gitolite。当我使用 git clone gitolite@localhost 登录时,这就是我要去的地方……那不是真正的服务,而是用户。但我将始终必须使用该用户才能使其正常工作。对于权限,它与我发送的密钥相匹配,这就是不同用户可以使用“gitolite”的方式。无论如何,感谢您的回答和链接:)
    猜你喜欢
    • 2014-10-20
    • 1970-01-01
    • 2013-05-04
    • 2015-06-08
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    • 2021-02-28
    相关资源
    最近更新 更多