it-swarm.com.de

Wie erhalte ich die SSH-Schlüssel für eine neue Google Compute Engine-Instanz?

Ich bin ein neuer Google Cloud-Testbenutzer, der aus der Amazon EC2-Welt stammt. Ich bin total verblüfft, wie ich mich über ssh bei einer neuen Instanz der Google Compute Engine VM anmelde.

Ich habe eine neue Instanz über die Google Cloud-Webkonsole erstellt (von einem CentOS 6.x-Image aus, falls dies wichtig ist). Ich sah ein Leerzeichen auf dem Erstellungsformular, in das ich einen vorhandenen SSH-Schlüssel einfügen konnte, aber da dies meine erste Instanz war, hatte ich noch keinen. Ich nahm an, es würde mich wie Amazon EC2 durch den Schlüsselerstellungsprozess führen. Hat es nicht getan Es scheint, die Instanz erstellt zu haben, aber ich kann nicht herausfinden, wie man die SSH-Schlüssel dafür bekommt. Die Instanz-Webseite hat eine Schaltfläche mit der Aufschrift "ssh", mit der ich mich kurz über ein Popup-Browserfenster anmelden kann, das eine ssh-Sitzung simuliert. Es ließ mich jedoch nur ein Benutzerkonto ein, nicht root. Das Popup-Fenster enthielt ein Menüelement, um den Benutzer zu ändern. Ich habe es in "root" geändert. Danach werden nur Verbindungsfehler generiert. Jetzt kann ich mich überhaupt nicht mehr bei meiner Instanz anmelden.

Ich habe gesucht, aber keine direkte Dokumentation gefunden, die diesen Aspekt von Google-Berechnungsinstanzen erläutert. Ich habe die Webkonsole durchsucht, aber ich kann weder den Mechanismus zum Erstellen/Auswählen von ssh-Schlüsseln finden noch die Schlüssel für eine Instanz erstellen oder herunterladen.

Muss ich meine eigenen SSH-Schlüssel manuell an meinem Ende erstellen und während der Erstellung in das Formular einfügen oder fehlt ein anderer offensichtlicher Schritt?

21
steevithak

Standardmäßig sind einer neuen Instanz der Google Compute Engine (GCE) VM keine SSH-Schlüssel zugewiesen, sodass Sie sie nicht "abrufen" können, da sie nicht vorhanden sind. Sie müssen sie erstellen. oder verwenden Sie ein Werkzeug wie gcloud (siehe unten), das Sie zur Erstellung auffordert, wenn Sie noch keine SSH-Schlüssel haben.

Sie haben mehrere Möglichkeiten, eine Verbindung zu Ihrer neu erstellten GCE-VM herzustellen.

Eine Option ist die Verbindung mit der Schaltfläche "SSH" in der Developer Console-Benutzeroberfläche neben der Instanz in der Liste der Instanzen, wodurch ein Browserfenster und eine Terminalsitzung für die Instanz geöffnet werden.

Wenn Sie über die Befehlszeile eine Verbindung über den SSH-Client herstellen möchten, können Sie das gcloud-Tool (Teil des Google Cloud SDK ) verwenden:

gcloud compute ssh example-instance

Auf der Hilfeseite gcloud compute ssh finden Sie alle Flags und Optionen sowie mehrere Beispiele.

Wenn Sie noch nicht über SSH-Schlüssel verfügen, werden Sie dazu aufgefordert, sie zu erstellen und eine Verbindung zur Instanz herzustellen. Wenn Sie bereits über Schlüssel verfügen, können Sie vorhandene SSH-Schlüssel verwenden, die an die Instanz übertragen werden.

Standardmäßig erwartet gcloud, dass sich die Schlüssel in den folgenden Pfaden befinden:

  • $HOME/.ssh/google_compute_engine - privater Schlüssel
  • $HOME/.ssh/google_compute_engine.pub - öffentlicher Schlüssel

Wenn Sie Schlüssel von gcloud an einem anderen Ort wiederverwenden möchten, sollten Sie entweder Symlinks erstellen oder gcloud mit dem Flag --ssh-key-file zeigen.

Hinweis: Wenn Sie gcloud nicht verwenden, müssen Sie die SSH-Schlüssel manuell zu den Metadaten der Instanz hinzufügen, wie in Einrichten der ssh-Schlüssel auf der Instanzebene beschrieben, die Sie über gcloud oder ausführen können manuell über Google Cloud-Konsole .

Sie können auch Ihre eigenen Schlüssel erstellen, indem Sie ssh-keygen verwenden. Dies ist, was gcloud auch unter den Deckblättern verwendet. Sie können eine Verbindung zur Instanz herstellen, indem Sie ssh direkt anstelle von gcloud verwenden. Dazu müssen Sie jedoch zusätzliche Parameter angeben:

ssh -i KEY_FILE -o UserKnownHostsFile=/dev/null \
    -o CheckHostIP=no -o StrictHostKeyChecking=no \
    [email protected]_ADDRESS

was die folgenden Parameter erfordert:

  • KEY_FILE - [Erforderlich] Die Datei, in der die Schlüssel auf dem Computer gespeichert sind, z. B. ~/.ssh/google_compute_engine.

  • USER - [Erforderlich] Der Benutzername, der in dieser Instanz angemeldet werden soll. Normalerweise ist dies der Benutzername des lokalen Benutzers, der gcloud compute ausführt.

  • IP_ADDRESS - [Erforderlich] Die externe IP-Adresse der Instanz. 

Weitere Informationen finden Sie in den SSH-Dokumenten .

40
Misha Brukman

So melden Sie sich mit ssh an der Instanz an [Alle Schritte, die unter Linux Ubuntu 16.04 ausgeführt werden]

  1. Erstellen Sie einen SSH-Schlüssel ssh-keygen -t rsa -f ~/.ssh/gcloud_instance1 -C varunon9 hier gcloud_instance1 ist der Name der Schlüsseldatei und varunon9 ist der Benutzername

  2. Inhalt der Datei mit öffentlichem Schlüssel cd ~/.ssh && cat gcloud_instance1.pub ausgeben

  3. Klicken Sie auf das Symbol VM für Instanzdetails bearbeiten  enter image description here

  4. Fügen Sie den Inhalt der öffentlichen Schlüsseldatei (Ausgabe von cd ~/.ssh && cat gcloud_instance1.pub) in den Textbereich ssh-keys ein

     enter image description here  enter image description here

  5. Klicken Sie auf Speichern

  6. Vom Terminal aus können Sie sich jetzt über ssh ssh -i gcloud_instance1 [email protected] bei Ihrer Instanz anmelden, wobei gcloud_instance1 die private Schlüsseldatei (im .ssh-Verzeichnis) und varunon9 der Benutzername und 35.200.201.56 die externe IP-Adresse Ihrer Instanz ist.

6
Varun Kumar

Einfachste Methode zum Erstellen und Verwenden eines Paares von SSH-Schlüsseln für mehrere Instanzen:

Schritt 1: Installieren Sie PuTTY und puttyGen von https://PuTTY.org/

Schritt 2: Öffnen Sie ein Terminal auf Ihrem lokalen Desktop/Laptop (ab Windows 10 verwenden Sie das Windows Linux-Subsystem)

Typ: ssh-keygen

Geben Sie an der Eingabeaufforderung einen Namen für den Dateinamen ein: z. google_key

Es werden 2 Dateien google_key und google_key.pub erstellt

Schritt 3: Kopieren Sie den gesamten Inhalt von google_key.pub

Beachten Sie, dass es kein neues Zeilenzeichen gibt. Es sollte alles in einer Zeile stehen.

Schritt 4: Bevor Sie eine VM Instanz erstellen, gehen Sie zu Compute Engine -> Metadata

Wählen Sie die Registerkarte "SSH-Schlüssel" und klicken Sie auf "SSH-Schlüssel hinzufügen"

Fügen Sie den Inhalt von google_key.pub ein. Wenn Sie den Inhalt richtig eingefügt haben, sollte auf der linken Beschriftung Benutzername angezeigt werden. Dann drücken Sie Speichern.

Schritt 5: Erstellen Sie jetzt Ihre bevorzugte VM Instanz unter Google Compute.

Kopieren Sie die externe IP vm_instance_external_ip

Gehe zurück zu deinem Linux-Terminal und tippe

ssh -i google_key.pub Nutzername @ vm_instance_external_ip

Tippe "yes"

Und jetzt solltest du gut gehen.

Wenn Sie Videoanweisungen benötigen, siehe hier

2
isma

Ich habe eine nützliche Schaltfläche gefunden, mit der das Rätselraten für die verschiedenen gcloud-Parameter wie versionId, serviceId usw. vermieden werden kann.

View gcloud command -> ssh screenshot

0
Sahar

Versuchen Sie nach dem Öffnen der Konsole, den Befehl gcloud auf der Registerkarte "ssh" anzuzeigen. Der gcloud-Client wird mit dem folgenden Befehl geöffnet.

gcloud compute --project ssh --zone 

Und wenn es das erste Mal ist, erstellt es einen SSH-Schlüssel für Sie. Sie müssen die Datei nur an diesem Speicherort ~/.ssh/google_compute_engine herunterladen, indem Sie die Option gcloud client download file oben rechts verwenden. Sobald Sie die Schlüsseldatei haben, geben Sie sie einfach aus 

ssh -i Benutzername @ external_IP

0