在 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
我已经为 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