当我通过 SSH 进入 GCP 计算引擎时不创建新用户

Not to create a new user when I SSH into GCP compute engine

我正在为我的烧瓶应用程序使用 GCP 计算引擎(Ubuntu 18.04)。我在设置 Flask 和 Python 环境时没有遇到任何问题。 我的问题是,当我通过 SSH 进入实例时,使用我正在使用的计算机的用户名创建了一个新用户。当我从另一个系统使用 SSH 或我的一位同事尝试登录时,将使用已使用的计算机的用户名创建一个新用户。我不想要这种行为。我想一直登录一个用户。

您是否考虑过使用 gcloud compute ssh cli?使用它,您可以通过提供 user@ see user 参数来覆盖您正在登录的用户。

[USER@]INSTANCE
Specifies the instance to SSH into.
USER specifies the username with which to SSH. If omitted, the user login name is used.

INSTANCE specifies the name of the virtual machine instance to SSH into.

参见:https://cloud.google.com/sdk/gcloud/reference/compute/ssh

另请参阅此线程,它似乎解释了如何使用标准 ssh 方法实现此目的:

https://unix.stackexchange.com/questions/404116/how-to-login-with-ssh-as-a-specific-user

您可以在本地创建一个 ssh 密钥(使用任何用户名),然后通过控制台将其 public SSH 密钥添加到 GCP 项目或实例。只需将 ssh 文件放在您计划用于访问 VM 的每台计算机上,这将仅使用您在创建 SSH 密钥期间指定的用户名。

有关如何为 Windows and/or gcloud CLI 或将 public SSH 密钥添加到项目或实例的说明,遵循 Google 云文档指南 Managing SSH keys in metadata

LinuxMacOS 工作站上,您可以使用 ssh-注册机 工具。

  1. 在您的工作站上打开一个终端并使用 ssh-keygen 命令 生成新密钥。指定 -C 标志以添加注释 你的用户名。

    ssh-keygen -t rsa -f ~/.ssh/[KEY_FILENAME] -C [USERNAME]
    

    其中:

    • [KEY_FILENAME] 是您要用于 SSH 密钥文件的名称。例如,文件名 my-ssh-key 生成一个 名为 my-ssh-key 的私钥文件和一个名为 public 的密钥文件 我的-ssh-key.pub.
    • [USERNAME] 是连接到实例的用户的用户名。


    此命令生成一个 SSH 私钥文件和一个匹配的 public 具有以下结构的 SSH 密钥:

    ssh-rsa [KEY_VALUE] [USERNAME]
    

    其中:

    • [KEY_VALUE] 是您生成的键值。
    • [USERNAME] 是此密钥适用的用户。


  2. 限制对您的私钥的访问,以便只有您可以阅读和 没有人可以写信给它。

    chmod 400 ~/.ssh/[KEY_FILENAME]
    

    其中:

    • [KEY_FILENAME] 是您用于 SSH 密钥文件的名称。

之后,找到您创建的 public SSH 密钥 and/or 您想要添加到项目或实例的任何现有 public SSH 密钥。按照 Managing SSH keys in metadata 指南中的说明,通过编辑相应的元数据将这些密钥添加到 GCP 项目或实例。

您现在可以使用您创建的 SSH 私钥从一台机器通过 SSH 访问这些 GCP 资源。

ssh [USERNAME]@[IP_ADDRESS]

其中:

  • [USERNAME] 是您在步骤 1 中创建 SSH 密钥时指定的用户名。
  • [IP_ADDRESS] 是您打算通过 SSH 连接到的 GCP 实例的 IP 地址。