我目前正在GCP上每个可用区域运行29个实例。我需要所有的实例都有一些python脚本文件。
由于我厌倦了通过控制台手动上传29次,我想知道是否有办法只在一个实例中上传脚本,并使用gcloud-scp命令将它们全部复制到其他28个实例?
目前,我正在尝试以下操作:
sudo gcloud compute scp --zone='asia-east1-b' /home/file.txt instance-asia-east1:/home/
上面的代码正在尝试scp";文件.txt";转到instance-asia-east1。我包含了sudo命令,因为它有一些权限问题。但在添加sudo后,我收到了另一条错误消息:
root@000.000.000.00: Permission denied (publickey).
lost connection
ERROR: (gcloud.compute.scp) [/usr/bin/scp] exited with return code [1].
问题出在哪里?我该如何解决?
您应该避免使用sudo
。
如果将--verbosity=debug
添加到gcloud compute ssh
或gcloud compute scp
命令中(本例除外(,则gcloud
会调用主机(可能是/usr/bin
(的ssh
和scp
命令。它使用由gcloud
使用您的凭据(gcloud config get account
或默认gcloud auth list
(生成的私钥。
gcloud compute scp
${PWD}/${FILE}
${INSTANCE}:.
--project=${PROJECT}
--zone=${ZONE}
--verbosity=debug
收益率:
DEBUG: Running [gcloud.compute.scp] with arguments: ...
...
DEBUG: Current SSH keys in project: ['...:ssh-rsa ... user@host']
DEBUG: Running command [/usr/bin/scp -i .../.ssh/google_compute_engine -o ...
INFO: Display format: "default"
DEBUG: SDK update checks are disabled.
注意
/usr/bin/scp -i .../.ssh/google_compute_engine ...
当您以sudo
的身份运行时,即使您复制了有证书的用户的google_compute_engine
SSH密钥(例如/root/.ssh
(,经过身份验证的用户也不会匹配,除非您还复制了gcloud
配置。。。
我建议您解决触发您使用sudo
的权限问题。