2014-12-17 2 views
14

Ich bin ein neuer Google Cloud-Testbenutzer, der aus der Amazon EC2-Welt kommt, und ich bin völlig verwirrt darüber, wie ich mich über ssh in eine neue Google Compute Engine VM-Instanz einlogge.Wie erhalten Sie die SSH-Schlüssel für eine neue Google Compute Engine-Instanz?

Ich habe eine neue Instanz über die Google Cloud-Webkonsole erstellt (aus einem CentOS 6.x-Image, falls dies wichtig ist). Ich sah eine leere Stelle auf dem Erstellungsformular, wo ich einen vorhandenen ssh-Schlüssel einfügen konnte, aber da dies meine erste Instanz war, hatte ich noch keine. Ich nahm an, dass es mich durch den Schlüsselerstellungsprozess wie Amazon EC2 führen würde. Es tat es nicht. Es scheint, die Instanz erstellt zu haben, aber ich kann nicht herausfinden, wie man die ssh Schlüssel dafür erhält. Die Instanzwebseite hat eine Schaltfläche, auf der "ssh" steht und ich habe mich über ein Popup-Webbrowser-Fenster, das eine SSH-Sitzung simuliert, kurz anmelden können. Es hat mich jedoch nur auf ein Benutzerkonto geführt, nicht auf root. Das Pop-up hatte einen Menüpunkt, um den Benutzer zu ändern, und ich änderte es in "root", nach dem es nichts anderes als Verbindungsfehler erzeugt und jetzt kann ich mich überhaupt nicht bei meiner Instanz anmelden.

Ich habe gesucht, kann aber keine geradlinige Dokumentation finden, die diesen Aspekt von Google Compute-Instanzen erklärt. Ich habe die Webkonsole durchsucht, kann aber weder den Mechanismus zum Erstellen/Auswählen von SSH-Schlüsseln noch die Möglichkeit finden, die Schlüssel für eine Instanz zu erstellen oder herunterzuladen.

Muss ich meine eigenen ssh-Schlüssel manuell an meinem Ende erstellen und sie während der Erstellung in das Formular einfügen oder gibt es einen anderen offensichtlichen Schritt, den ich vermisse?

Antwort

22

Standardmäßig sind einer neuen Google Compute Engine (GCE) -VM-Instanz keine SSH-Schlüssel zugewiesen, sodass Sie sie nicht abrufen können, da sie nicht existieren. Es liegt an Ihnen, sie zu erstellen. oder verwenden Sie ein Tool wie gcloud (siehe unten), das Sie auffordert, sie zu erstellen, wenn Sie noch keine SSH-Schlüssel haben.

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

Eine Möglichkeit besteht darin, über die Schaltfläche "SSH" in der Developer Console-GUI neben der Instanz in der Instanzenliste eine Verbindung herzustellen, wodurch ein Browserfenster und eine Terminalsitzung für die Instanz geöffnet werden.

Wenn Sie über SSH-Client auf der Kommandozeile verbinden möchten, können Sie gcloud Tool (Teil der Google Cloud SDK) verwenden:

gcloud compute ssh example-instance 

Sie können den vollständigen Satz von Flags und Optionen auf die sehen gcloud compute ssh Hilfeseite, zusammen mit einigen Beispielen.

Wenn Sie noch keine SSH-Schlüssel haben, werden Sie aufgefordert, sie zu erstellen und dann eine Verbindung zur Instanz herzustellen. Wenn Sie bereits Schlüssel haben, können Sie vorhandene SSH-Schlüssel verwenden, die an die Instanz übertragen werden.

standardmäßig gcloud erwartet Tasten auf folgenden Pfaden werden:

  • $HOME/.ssh/google_compute_engine - privaten Schlüssel
  • $HOME/.ssh/google_compute_engine.pub - öffentliche Schlüssel

Wenn Sie Schlüssel aus einem anderen wiederverwenden möchten Ort mit gcloud, entweder mit dem Symbol gcloud dort unter Verwendung der --ssh-key-file Flagge Symlinks machen oder zeigen.

Hinweis: wenn Sie gcloud überhaupt nicht verwenden, müssen Sie manuell die SSH-Schlüssel zu den Metadaten der Instanz hinzufügen, wie in Setting up ssh keys at the instance level beschrieben, die Sie über gcloud oder manuell über Google Cloud console tun können.

Sie können auch Ihre eigenen Schlüssel mit ssh-keygen erstellen, was gcloud auch unter den Abdeckungen verwendet. Sie können using ssh directly statt gcloud auf die Instanz verbinden, aber Sie werden zusätzliche Parameter angeben müssen, dies zu tun:

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

, die folgenden Parameter erfordern:

  • KEY_FILE - [Erforderlich] Die Datei wo die Schlüssel auf dem Computer gespeichert sind, zB ~/.ssh/google_compute_engine.

  • USER - [Erforderlich] Der Benutzername in diesem Fall loggt sein. In der Regel ist dies der Benutzername des lokalen Benutzers, der gcloud compute ausführt.

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

Weitere Einzelheiten finden Sie unter SSH docs.

+2

Ich glaube, Sie sagen, dass, wenn eine neue Instanz kein SSH-Schlüssel gibt es erstellt wird? Und ich kann keine SSH-Schlüssel auf herkömmliche Weise erstellen, wie ich es für einen CentOS-Server tun würde. Stattdessen muss ich die ssh-Schlüssel mit dem Google Tool glcoud erstellen. Aber einmal erstellt, kann ich normal auf die Instanz zugreifen (d. H. Ohne gcloud oder das webbasierte ssh). Ich werde es versuchen. Bleibt nur die Frage, ob mir das Root-Zugriff ermöglicht. Auf EC2 legen Sie die Root-SSH-Schlüssel während der Instanzerstellung fest und erstellen später ssh-Schlüssel auf Benutzerebene. Ist der von gcloud generierte ssh-Schlüssel der Stammschlüssel? – steevithak

+1

Der Instanz sind standardmäßig keine SSH-Schlüssel hinzugefügt. Ich habe die Antwort für Informationen über die Verwendung von 'sshk-keygen' und' ssh' direkt aktualisiert. Ihr Login ist der gleiche wie Ihr lokaler Benutzername, aber es wird passwortlos 'sudo' Zugriff haben, so dass Sie sich nicht direkt als' root' anmelden, sondern 'sudo' wird Ihnen' root' Zugriffsrechte geben. –

Verwandte Themen