Gitolite 一个用户 - 许多键 - 不同的用户名

标签 git authentication ssh gitolite

我希望按照说明设置 gitolite,一切都按计划进行。

我有点不确定用户名部分是如何工作的,浏览文档对我没有帮助——也许我遗漏了一些简单的东西。

如果我有两台客户端机器,供一个真实的人使用,但在每台机器上的用户名是 dave 和 david。我如何组织 keydir 和任何配置文件中的 key ,以便它们都代表同一用户?我得到后缀的东西,dave@laptop,dave@desktop(我认为),只是不知道如何连接不同的客户端机器用户名,因为它似乎在验证时寻找这个(可能是因为公钥包含 user@host 信息?)

如果需要,我可以提供更多详细信息 - 我只是不想用不相关的信息轰炸你们。

非常感谢。

最佳答案

目前根据文档推荐的方式

"The simplest and most understandable is to put their keys in different subdirectories [inside your /kedir], (alice.pub, home/alice.pub, laptop/alice.pub, etc)."

引用:https://gitolite.com/gitolite/basic-admin.html#multiple-keys-per-user

老办法

如果您询问如何完成以下任务:

  1. David(家用电脑)
  2. David(工作电脑)
  3. 大卫(笔记本电脑)

在每台计算机上使用不同的 ssh key ,您只需创建 key (即:keygen“david@someemail.com”),然后将公钥复制到您的 gitolite keydir 目录(gitolite-admin/keydir)。当您这样做时,只需将 key 命名为 david@homecomputer.pubdavid@workcomputer.pubdavid@laptop.pub。将 key 添加到存储库 (git add keydir/.)、提交 (git commit -m "added David's additional keys") 和 git push 返回服务器。

Gitolite 足够聪明,知道即使它是不同的 key ,用户名(在 @ 之前)仍然是 david 并且会让该用户登录并为 david

使用 ACL

希望对你有帮助

要解决您可能拥有 john_home.pub john_work.pub 的情况,请打开您的 gitolite 存储库(管理存储库)并重命名您的 kedir 中的 key john@work.pubjohn@home.pub 提交和推送。现在您的用户 john 可以从任何一台机器登录并使用相同的用户名。

请记住,为了使其正常工作,所有用户 key 的 SSH key 中的电子邮件地址必须相同。所以使用上面的示例,在键 david@homecomputer.pubdavid@workcomputer.pubdavid@laptop.pub 中都应该拥有 david@foobar.com 的电子邮件地址。

以上是对此的“旧方法”,如果您以“电子邮件地址方式”命名您的 key ,这可能会导致并发症,这与我上面所说的相反 gitolite 不检查您的 key 是否有正确的电子邮件地址。请忽略(为了清楚起见,我留下了原始评论)。

关于Gitolite 一个用户 - 许多键 - 不同的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5733699/

相关文章:

git - 为什么带有推送的 git 别名不起作用?

authentication - 限制特定仪表板中的某些 kibana 用户

api - 带有 key 斗篷身份验证服务器的 WSO2 api 管理器

ssh - 如何在没有分子登录的情况下通过 SSH 连接到分子实例

linux - 如何检查哪个用户位于 linux 终端的目录中?

Windows 上的 gitlab-runner 没有获得 .ssh 配置设置

git - 在 GIT 中将 barnch 2 与最新版本的分支 1 merge

git - 如何用空目录克隆 CVS 存储库

git - 仅给出文件的一个版本查找 Git 提交

c# - 访问表单例份验证票