Versuchen Sie es mit gcloud compute scp
:
gcloud compute scp
[[[email protected]]INSTANCE:]SRC [[[[email protected]]INSTANCE:]SRC …]
[[[email protected]]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]
B.
$ gcloud compute scp \
my-instance-1:~/file-1 \
my-instance-2:~/file-2 \
~/my-destination \
--zone us-central2-a
Alternativ können Sie auch (non-gcloud
) sftp
oder scp
; siehe diese SO-Antwort für Details zu den Befehlszeilenargumenten, die Sie angeben müssen, die ich hier der Einfachheit halber zitieren werde:
sftp -o IdentityFile ~/.ssh/google_compute_engine [email protected]
Um ein anderes SFTP-Tool zu verwenden, geben Sie ihm auf ähnliche Weise den Pfad zum privaten SSH-Schlüssel an, damit es eine Verbindung zur Instanz herstellen kann. Im Fall von gcloud
jedoch , kann es den Hostnamen selbst in die öffentliche IP auflösen; für alle anderen Tools müssen Sie die IP manuell finden und die IP-Adresse direkt angeben.
(gcloud compute copy-files
ist jetzt veraltet, daher gcloud compute scp
wird empfohlen)
Verwenden Sie gcloud compute scp
wie folgt:
gcloud compute scp [[[email protected]]INSTANCE:]SRC [[[[email protected]]INSTANCE:]SRC …]
[[[email protected]]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 …]
Zum Beispiel:
$ gcloud compute scp example-instance:~/REMOTE-DIR ~/LOCAL-DIR \
--zone us-central1-a
Wenn die Zone bereits eingestellt ist (mit gcloud config set compute/zone ZONE
oder über die Umgebungsvariable, dann müssen Sie die Zone oben nicht angeben)
Auch gcloud compute scp
kopiert standardmäßig nicht rekursiv. Wir müssen den --recurse
verwenden Flagge dafür.
Siehe die ausführliche Dokumentation hier.
Vielleicht können Sie SFTP verwenden (Google verwendet Filezilla in ihren Dokumenten). Ich bin nicht so gut mit CLI und mag daher die GUI-Optionen, die Filezilla und andere bieten.
Hier sind die Schritte auf hoher Ebene:
- Installieren Sie das gcloud SDK (
$ gcloud init
) und führen Sie es aus ) - SSH-Schlüssel generieren (
$ gcloud compute ssh
) - Richten Sie den FTP-Client ein (installieren und fügen Sie die Schlüsseldatei hinzu)
- Verbinden Sie sich über den SFTP-Client mit der VM
Und hier ist die Dokumentation von Google.
Außerdem habe ich dies aufgezeichnet, es könnte hilfreich sein:
https://www.youtube.com/watch?v=9ssfE6ODpak