我们使用通用git
用户通过 SSH 访问我们服务器上的 git 存储库。我的理解是,这是访问 git 存储库时的一种事实上的标准。
现在我们正在迁移到另一个托管服务提供商,有人问我为什么我们不使用我们用来访问系统的普通用户来访问 git。
说实话,现在我想不出为什么我们不应该这样做。
为什么我们应该优先选择 git 用户而不是其他用户,这有什么好处或坏处吗?或者这没什么区别?例如,我们将 git 访问与其他系统访问分开,并且可以轻松限制此用户的访问?
答案1
如果你只创建一个名为“git”的帐户并执行没有其他的使用它,那么它就没有什么优势了。事实上,使用个人帐户通常会更好(允许您通过文件权限控制存储库访问)。您对“git”应用的相同限制也可以应用于其他帐户。
但通常情况下,“git@”用户不仅单独使用,还与 Gitolite(或 Gitea/Gogs/GitLab)等“智能”后端一起使用,后者根据所使用的 SSH 密钥应用不同的访问级别(通过command=".."
authorized_keys 文件中的技巧)。例如,虽然基本文件权限可以在存储库级别限制推送访问,但“智能”后端可以在分支级别执行相同操作。
通常这些后端是设计让每个人都使用相同的 UID 运行(仅通过 SSH 密钥区分客户端)。它们依靠 SSH 服务器强制您进入受限环境,这样其他人就无法再通过 SFTP 或交互式 SSH 直接访问存储库文件(防止他们绕过定义的任何访问策略,例如覆盖接收挂钩)——但这意味着该帐户无法用于实际的服务器管理。将所有 Git 访问与“git”帐户分开可以避免这个问题。
如何撤销某个人的访问权限?如何审核实际登录的用户? – gronostaj
您从 authorized_keys 文件中删除他们的 SSH 密钥。当前的 OpenSSH sshd 版本默认记录客户端的密钥指纹;在旧版本中,这主要是增加日志详细程度的问题。