多个Git用户,一台机器,SSH密钥验证

时间:2017-02-27 03:47:49

标签: windows git windows-server-2012

在我遇到这个问题的实例中,我的公司需要在飞行中加密一切,我们使用Stash来管理我们的git回购。要获得访问权限,您必须在Stash用户帐户上注册SSH密钥,然后您必须拥有与给定项目或存储库互动的权限。

我们希望在AWS盒子上建立一个统一的开发环境,这样我们就不会一次又一次地遇到新人入门和设置环境的问题(目前太忙而无法编写脚本),但是Git令人惊讶的强硬。有没有办法将多个SSH密钥绑定到一个Git安装中,只需用git config user.name/email更改用户?

1 个答案:

答案 0 :(得分:-1)

对于这个任务,我放弃了Windows,并且apt install git-core gitolite放在一个GNU / Linux盒子上(一个运行起来就像垃圾一样便宜的VM)。 gitolite正是一种低级别的解决方案,它将Git置于单个系统用户之后,并根据他们的SSH pubkeys来区分各个开发人员。它还允许管理那些开发人员等的权限。您可以通过推送在特殊管理Git存储库中进行的更改来控制gitolite实例,该存储库包含配置文件和开发人员的SSH pubkeys。

否则,是的:

  • 通过pubkey访问帐户由SSH服务器管理 基于密钥列表"授权"对于那个帐户。

    OpenSSH尊重名为" authorized_keys"的特殊文件。位于 在用户的~/.ssh目录下。

    OpenSSH的客户端还包含一个特殊命令ssh-copy-id 它能够更新"〜/ .ssh / authorized_keys"用的文件 "身份"正在执行的本地用户 - 他们的SSH pubkey-using 非基于密钥的身份验证(通常基于密码"键盘交互")。

  • OpenSSH还支持一个特殊的修饰符," force_command"为每个键 在该文件中,它允许限制连接的命令和 授权用户可以在其会话中进行呼叫。

    这样可以降低攻击面。

请注意gitolite会自动处理这两件事。