我正在尝试将本地文件复制到/var/www/
。
该实例有两组密钥。一组是默认生成的实例创建者的密钥,另一组是我手动设置的远程访问密钥。
我已经成功通过以后者身份登录gcloud
,并且登录后我可以更改为 root 。但是当我尝试通过root@instance-name
或以 root 权限登录时instance-creator-name@instance-name
,我得到了Permission denied (publickey)
。
我是否需要为实例创建者生成新的密钥对?实例创建者的私钥可以在某处找到吗(这不会违反安全性吗)?还有其他方法可以以 root 身份登录吗?
編輯:文档留下那部分未指定。
以下示例演示了将名为 css 的文件夹复制到 >default 文档目录中,并以 root 用户身份执行此操作,因为该用户拥有 /var/www 远程目录:
$ gcloud compute copy-files ~/mysite/css root@<YOUR-INSTANCE>:/var/www
根据文档,这应该可行,但我得到的Permission denied
却是。考虑到我可能搞乱了我的 SSH 配置,我强制 gcloud 使用默认私钥,然后使用我手动生成的密钥,但都没有用。
答案1
出于安全原因,标准 Google 映像不提供以 root 身份直接连接的功能。实例创建者和使用元数据 sshKeys 值添加的任何用户都会自动成为该帐户的管理员,并且能够像您提到的那样运行 sudo 而无需密码。
虽然不建议,但你可以修改
/etc/ssh/sshd_config
并重新启动 sshd 来更改此策略
答案2
在您的机器上本地安装 google cloud sdk。这将自动让您登录到 google 并设置必要的权限。让生活变得更加轻松:https://cloud.google.com/sdk/downloads