Answers:
尝试使用gcloud compute scp
:
gcloud compute scp
[[USER@]INSTANCE:]SRC [[[USER@]INSTANCE:]SRC …]
[[USER@]INSTANCE:]DEST
[--compress] [--dry-run] [--force-key-file-overwrite]
[--plain] [--port=PORT] [--recurse] [--scp-flag=SCP_FLAG]
[--ssh-key-file=SSH_KEY_FILE]
[--strict-host-key-checking=STRICT_HOST_KEY_CHECKING]
[--zone=ZONE]
[GCLOUD_WIDE_FLAG …]
[-h]
例如,
$ gcloud compute scp \
my-instance-1:~/file-1 \
my-instance-2:~/file-2 \
~/my-destination \
--zone us-central2-a
或者,您也可以使用(non- gcloud
)sftp
或scp
; 有关您需要指定的命令行参数的详细信息,请参见以下SO答案,为简单起见,在此引用:
sftp -o IdentityFile ~/.ssh/google_compute_engine user@host
要使用任何其他SFTP工具,类似地向其提供SSH私钥的路径,它将能够连接到实例。但是,在的情况下gcloud
,它可以将主机名解析为公共IP本身。对于所有其他工具,您需要手动查找IP并直接指定IP地址。
(gcloud compute copy-files
现已弃用,因此gcloud compute scp
建议使用)
用法gcloud compute scp
如下:
gcloud compute scp [[USER@]INSTANCE:]SRC [[[USER@]INSTANCE:]SRC …]
[[USER@]INSTANCE:]DEST [--compress] [--dry-run] [--force-key-file-overwrite]
[--plain] [--port=PORT] [--recurse] [--scp-flag=SCP_FLAG]
[--ssh-key-file=SSH_KEY_FILE] [--strict-host-key-checking=STRICT_HOST_KEY_CHECKING]
[--zone=ZONE] [GCLOUD_WIDE_FLAG …]
例如:
$ gcloud compute scp example-instance:~/REMOTE-DIR ~/LOCAL-DIR \
--zone us-central1-a
如果已设置区域(使用gcloud config set compute/zone ZONE
或通过环境变量,则无需在上面指定区域)
另外,gcloud compute scp
默认情况下不会递归复制。我们需要为此使用--recurse
标志。
请参阅此处的详细文档。
也许您可以使用SFTP(Google在其文档中使用了Filezilla)。我对CLI不太满意,因此不喜欢Filezilla等提供的GUI选项。
以下是高级步骤:
$ gcloud init
)$ gcloud compute ssh
)这是Google提供的文档。
另外,我已经记录了这一点,可能会有所帮助:
这对我有用
句法 :
gcloud compute scp <UserName>@<ServerName/InstanceName>:~/<FilePathFromInstance> <LocalSystemFilePath>