以共享用户身份登录是一个坏习惯吗?

use*_*249 35 ssh user-management

我曾在组织中工作过,在这些组织中,系统管理员不是为每个想要登录机器的人创建一个新的 Ubuntu 用户,而是简单地将每个用户的 ssh 密钥添加到.ssh/authorized_keys,并且每个人都ssh以(例如ubuntu@hostec2-user@host. (顺便说一句,我也在实验室环境中的共享 Mac mini 上看到了这种做法。)这是公认的做法,还是一种反模式?

有问题的主机主要用于测试,但也有一些操作通常需要按用户配置并被跟踪为由特定用户完成,例如创建和推送 git 提交,目前使用通用 git 完成用户。

thk*_*ala 42

是的,这是一个坏习惯。它依赖于这样一个基本假设,即周围没有(或将有)恶意且没有人犯错误。拥有一个共享帐户使得在没有责任和没有任何限制的情况下发生的事情变得微不足道 - 用户破坏某些东西对每个人来说都会破坏它。

如果这种 uid 共享方案的原因仅仅是为了减少创建新帐户和共享配置的管理成本,那么也许管理员应该在像AnsibleChefPuppetSalt这样的自动化系统上投入一些时间来创建像创建用户这样的东西多台机器上的帐户极其简单。

  • 这甚至不是恶意,甚至也不是无能。当我做的*任何*不起作用时,我无法假设我会记得在这个帐户上做过的任何事情。 (4认同)

Law*_*w29 7

首先这并没有让我感到震惊,而且我在一个非常安全的环境中工作。每个人都有自己的用户和机器以及 ssh 密钥,为了在我们的服务器上工作,我们以 root 或其他用户的身份,在必要时通过日志中继。我们所做的一切都被记录为已由 ssh 密钥的所有者完成,因此问责制是可以的。

替代方案是什么?许多事情必须以特定用户身份完成,更不用说root了。须藤?这对于某些非常受限制的任务是可以的,但对于机器的系统管理则不然。

但是我不确定您的最后一段,您的意思是有人可以将 git commit 推送给通用用户吗?那会破坏问责制,而破坏问责制是不好的。我们从我们登录的机器上执行 git 并使用我们的 ssh 密钥对 git 进行身份验证...

身份验证、授权和记账 (AAA) 是经典的表达方式:您使用 ssh 密钥进行了身份验证,您被授权执行通用用户可以执行的任何操作,因为您的密钥在 authorized_keys 中,并且您需要记账以便您执行的操作可以事后复查。

  • 您在“极其安全的环境”oO 中以 root 身份 ssh 登录? (4认同)
  • 那么通用用户具有某种授权修改 git repo 的身份验证(ssh 密钥?)?那真的不好。不仅因为它破坏了对该提交的问责制,还因为任何人都可以复制该密钥并从其他地方使用它。当我遇到这种问题时,我将代码或差异复制到我的本地机器并从那里提交。 (3认同)
  • 为什么“sudo”对于机器的一般管理是不可接受的? (2认同)