Sam*_*son 5 ssh authorized-keys jenkins google-cloud-platform
我正在尝试为 Google Cloud VM 中托管的软件设置 Jenkins。我有一个具有用户帐户 A 和用户帐户 B 的虚拟机。Jenkins 托管在用户帐户 A 中。所有其他软件都托管在用户帐户 B 中。为了授权 Jenkins ssh 到 userB@VM_ADDRESS,我将用户 A 的 . ssh/id_rsa.pub 进入用户 B 的 .ssh/authorized_keys。这允许 Jenkins 每当我将更改推送到 Github 时就可以 ssh 到 userB@VM_ADDRESS 来更新我的软件。然而,过了一段时间,由于某种原因,用户帐户 B 中的 .ssh/authorized_keys 被替换/刷新,我的密钥消失了,Jenkins 的 ssh 将因权限被拒绝而失败。我应该如何解决这个问题?或者我做詹金斯错了?
我在https://groups.google.com/g/gce-discussion/c/iHqRb2KlMZg/m/x59xV4pYAQAJ?pli=1上看到了这个帖子,这似乎是一个类似的问题,但读完后我仍然不知道我在做什么需要做。
元数据中的 SSH 密钥会定期重新部署。要解决此问题,不要在系统中手动执行复制/粘贴,而是复制密钥并(将其添加到计算引擎元数据中)(https://cloud.google.com/compute/docs/instances/adding-removing -ssh-密钥)
但是,我不确定这是遵循的好方法。为什么不使用A账户登录,因为这是“现实”并在软件上执行操作?您可以将帐户 A 和帐户 B 放在同一个 Linux 组中,或者最后执行 chown 来更改新文件的所有者。
这个棘手问题背后的要求是什么?
更新1:
使用帐户A的密钥登录用户B的事实就像是冒充。最后,您不知道是用户帐户 A 还是 B 对您的文件执行了操作。
无论如何,在linux中你有3个级别的权限UGA(用户,组,全部),这就是为什么当你执行:rwxr-xr时你会得到这样的东西——ls -la
这意味着U(用户)可以执行RWX(读写执行) ,组只能读取和执行,全部只能读取。
因此,如果用户帐户A和用户帐户B在同一个组中,则可以设置公共组权限并避免所有人(其他人)访问文件。
归档时间: |
|
查看次数: |
2517 次 |
最近记录: |