使用通用 git 用户进行 SSH 访问的 (缺点) 优势

使用通用 git 用户进行 SSH 访问的 (缺点) 优势

我们使用通用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 版本默认记录客户端的密钥指纹;在旧版本中,这主要是增加日志详细程度的问题。

相关内容