Wir löschen und erstellen häufig Maschinen auf Google Compute Engine neu, um Testumgebungen auf- und abzubauen, Failover-Tests durchzuführen usw.
Das Problem besteht darin, dass GCE die SSH-Serverschlüssel für jede neue Instanz, die aus einem Image oder einem Snapshot erstellt wird, immer neu erstellt.
Wie kann man auf einfache Weise über statische SSH-Schlüssel oder SSH-Schlüssel verfügen, die bei SCP- oder SSH-Vorgängen maschinenübergreifend problemlos akzeptiert werden?
Antwort1
Wenn Sie Ihre Maschinen nur zum Testen verwenden ( ssh
natürlich um etwas anderes als sich selbst zu testen) und die Sicherheit kein Problem darstellt (geschlossene Umgebung), können Sie es zu einem Teil Ihres Installationsskripts/Kickstarts/ersten Starts machen, die Schlüssel von irgendwoher zu beziehen und keine eigenen zu generieren (die Art und Weise, wie die Schlüsselgenerierung ausgelöst wird, ist zwischen den Distributionen unterschiedlich, aber Sie werden es herausfinden – RHEL erstellt sie nur, wenn sie beim ersten Dienststart fehlen).
Antwort2
Wenn Sie bereits eine private Schlüsseldatei google_compute_engine
in Ihrem /home/<username>/.ssh/
Verzeichnis haben, gcloud compute ssh <target instance>
sollte der Befehl keinen neuen Schlüssel generieren. Wenn Sie jedoch einen anderen Benutzernamen verwenden oder versuchen, von einer neu erstellten VM-Instanz aus per SSH zu kommunizieren, gcloud compute ssh
generiert der Befehl einen neuen privaten/öffentlichen Schlüssel, um die Sicherheitsanforderungen zu erfüllen.
Sie können den privaten Schlüssel auf eine bestimmte Maschine oder Ihren lokalen Computer kopieren und von dort aus immer SSH verwenden. Dadurch entfällt die Generierung neuer Schlüssel.
Wenn es um den SSH-Hostschlüssel geht, können Sie -o StrictHostKeyChecking=no
die Option mit Ihrem SSH-Befehl (OpenSSH) verwenden, um die Überprüfung der Authentizität des Hostschlüssels zu umgehen.