在 Google Cloud Platform 上为其他帐户创建 SSH 密钥

Create an SSH key for other account on Google Cloud Platform

我已经为 Google Cloud 安装了 Cloud SDK。我已经使用 auth 登录,它将我重定向到 gmail-login。创建了 SSH 密钥,甚至通过 SFTP 使用 Filezilla 登录。

问题是,当我使用 gmail 身份验证登录时,SDK shell(或 putty?)将我登录到一个非管理员帐户。它创建了另一个 SSH 用户帐户(在我的电脑之后命名为 'Acer')并让我登录。因此,FTP 从 /home/Acer 文件夹开始。我想访问 /home/admin/web 文件夹,但我现在没有。

如何为管理员帐户创建 SSH 密钥,以便我可以访问上述文件夹?否则,是否可以授予'Acer'访问所有文件夹的权限?

我有几点建议。

首先介绍一下背景。如果您在家庭工作站上 运行 此命令:

sudo find / -iname gcloud

您会在家庭工作站上为每个用户发现一个 gcloud 配置文件夹。您可能会看到类似这样的内容:

/root/.config/gcloud
/home/Acer/.config/gcloud

如果将目录更改为 /home/Acer/.config/gcloud/configurations,您将看到名为 'config_default' 的文件。该文件将包含用于该用户的默认帐户 ('Acer')。

因为您已作为该用户执行了 gcloud auth login,并且在此过程中选择了您的 gmail 帐户,它将在该用户的配置文件中包含该 gmail ID/account。如果您希望名为 'admin' 的用户登录您的项目,您可以尝试将名为 'admin' 的用户添加到您的家庭工作站,然后在尝试使用 gcloud auth login 之前,确保您切换将您家庭工作站上的用户更改为用户 'admin'。这将在您的家庭工作站上为用户管理员生成一个 gcloud 配置,并传播 SSH 密钥等。

如果您想手动创建 ssh 密钥,这里有一些有用的信息 here

(值得一提的是,如果您决定使用 gcloud compute ssh 登录您的实例主工作站,您可以在命令中指定您希望登录的用户。例如 gcloud compute ssh admin@INSTANCE_NAME).

I want access to the /home/admin/web folder, but I don't have it now.

即使您以不同的用户身份登录计算机(在本例中为 'Acer'),文件夹 /home/admin/web 应该仍然存在于实例中(如果它之前存在的话)。如果您进入文件夹 /home/Acer,您是否尝试过将目录更改为上面的文件夹,然后列出文件夹以查看 /home/admin/ 是否存在?

例如,来自/home/Acer 运行:

$ cd ..

然后

$ ls

您应该可以看到 /home/admin/

Otherwise, is it possible to grant 'Acer' the permissions to access all the folders?

是的,这也是可能的。如果您以项目所有者身份访问实例(最简单的方法是以项目所有者身份登录控制台并使用控制台中的 SSH 功能访问实例)。现在你可以运行这个命令:

$ sudo chown Acer.Acer -R /home/admin/web

这将使用户 'Acer' 成为目录 /home/admin/web 及其下方所有 files/directories 的所有者(感谢 -R 开关)。

现在,当您下次以用户 'Acer' 身份访问实例时,您将能够通过 运行 执行以下操作来访问 /home/admin/web,并且您还将拥有 read/write 能力:

$ cd /home/admin/web