Google Compute Engine - SSH oder RSYNC ohne Passwort

2331
speedplane

Ich habe mehrere Instanzen der Google Compute Engine (GCE) installiert. Ich habe ein paar Skripte, die Informationen (Protokolldateien usw.) aus diesen Instanzen abrufen, und einige andere, die Dateien hochschieben. Ich würde gerne mehr davon automatisieren, aber jedes Mal, wenn ich eine Verbindung mit einer Rechenmaschine-Instanz herstelle, muss ich mein Passwort eingeben.

Wie richte ich rsync oder ssh ein, so dass ich kein Passwort brauche, oder wie füge ich mein Passwort in diese Programme ein?

Beachten Sie, dass dies ursprünglich in SO veröffentlicht wurde, aber dann hierher verschoben wurde.

0
Ist GCE etwas Besonderes? Es gibt _quite_ ein paar [bestehende Posts] (http://superuser.com/questions/8077/how-do-i-set-up-ssh-so-i-dont-have-to-typ-my-password) sprechen über passwortlose SSH-Verbindungen unter Verwendung der Authentifizierung mit öffentlichen Schlüsseln. grawity vor 10 Jahren 2

1 Antwort auf die Frage

1
Misha Brukman

GCE ssh verwendet die Authentifizierung mit öffentlichen Schlüsseln und keine Kennwörter. Sie haben also folgende Optionen:

  1. Verwenden Sie gcloud compute copy-fileswie in dieser Antwort beschrieben . Dies ist wahrscheinlich einfacher, da Sie Projekte und Hostnamen symbolisch angeben können, da sich die IP-Adressen ändern können.

  2. Verwenden Sie sftpwie in dieser Antwort beschrieben, nämlich:

    sftp -o IdentityFile ~/.ssh/google_compute_engine user@host 
  3. Verwenden Sie sshjedoch einen vollständigen Pfad zu der bei GCE registrierten Schlüsseldatei. Dieser Befehl wird beim Ausführen ausgedruckt, gcloud compute ssh <instance>sodass Sie ihn einfach kopieren, einfügen und später verwenden können. Es sollte wie folgt aussehen:

    ssh -i ~/.ssh/google_compute_engine \ -o UserKnownHostsFile=/dev/null \ -o CheckHostIP=no \ -o StrictHostKeyChecking=no \ USER@IP_ADDRESS 

    Beachten Sie, dass Sie hier genaue IP-Adressen verwenden müssen. Daher sollten Sie entweder statische IP-Adressen oder DNS verwenden, um einen konstanten Namen für möglicherweise variierende IP-Adressen zu erstellen (wenn Sie dynamische IPs verwenden).

    Sie können mehr in der Dokumentation lesen .