2

我在一个项目中,来自 LDAP 服务器的所有用户都只有电子邮件作为唯一标识符。我需要让用户从他们在 linux 服务器上的远程主目录中克隆他们的项目。所以我正在考虑使用 GIT 的 SSH 协议对它们进行身份验证和授权。

但是我在使用 Eclipse EGit 插件时遇到了问题,因为 git clone 命令看起来像这样:

git clone jhon.smith@emailserver@reposerver:pathtosomeproject

Eclipse 试图通过转义 @ 来提供帮助:

git clone jhon.smith%40emailserver@reposerver:pathtosomeproject

但这不起作用,并且显示身份验证错误。我所做的是在电子邮件中添加一个“”。

git clone 'jhon.smith@emailserver'@reposerver:pathtosomeproject

这很好用,但是当 Eclipse 尝试在下一页中使用 ls-remote 列出所有分支时,它说无法显示消息错误。

我的问题是,是否有人已经经历过这种要求并有替代解决方案?

我不知道 Gitosis 在这里是否有帮助,因为环境不会有组,只有用户在他们的主文件夹中拥有他们的项目并使用 Eclipse EGit 来克隆和推送项目。

谢谢

4

1 回答 1

0

首先,gitosis 已过时,请使用 Gitolite

其次,ssh 地址用于 Git 存储库服务器的管理员帐户(例如“ gitadmin”),以检查一个人的公钥是否在该~gitadmin/.ssh/authorized_keys.

当你使用像“jhon.smith@emailserver@reposerver:pathtosomeproject”这样的 ssh 地址时,你要求 reposerver SSH 守护进程检查 ~jhon.smith@emailserver/.ssh/authorized_keys,这是没有意义的(你有一个Git 管理员帐户,而不是每个用户一个!,我怀疑您会在 unix 服务器上找到用户 ID 名称“ jhon.smith@emailserver”)

Gitolite会有所帮助,因为它将形式化每个用户将交流的公钥。阅读“添加和删除用户”和“ ssh 基础”。
该公钥的名称将代表从 Gitolite 服务器查看的他们的“id”。
(所以不要使用复杂的公共 ssh 密钥,例如jhon.smith@emailserver!jhon.smith_emailserver并且jhon.smith_emailserver.pub会做得很好,例如)

于 2012-06-17T19:09:50.350 回答