2014-02-19 4 views
6

Ich habe Probleme mit ssh, um mich bei einer VM anzumelden, die mit einem benutzerdefinierten Image erstellt wurde.Wie SSH in eine GCE-Instanz, die aus einem benutzerdefinierten Image erstellt wurde?

Ich folgte die Schritte für creating an image from an existing GCE instance.

Ich habe erfolgreich das Bild erstellt, es in Google Cloud Storage hochgeladen und es als Bild zu meinem Projekt hinzugefügt, aber wenn ich versuche, eine Verbindung zu dem neuen Bild herzustellen, bekomme ich eine "Verbindung verweigert".

Ich kann andere Anwendungen sehen, die auf anderen Häfen für das neue Bild laufen, also scheint es nur ssh zu sein, der betroffen ist.

Die Schritte I sind unten tat:

...create an image from existing GCE instance (one I can log into fine via ssh)..then: 

gcutil --project="river-ex-217" addimage example2 http://storage.googleapis.com/example-image/f41aca6887c339afb0.image.tar.gz 
gcutil --project="river-ex-217" addinstance --image=example2 --machinetype=n1-standard-1 anothervm 
gcutil --service_version="v1" --project="river-ex-217" ssh --zone="europe-west1-a" "anothervm" 

Welche Ausgänge:

INFO: Running command line: ssh -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /Users/mark1/.ssh/google_compute_engine -A -p 22 [email protected] -- 
ssh: connect to host 23.251.133.2 port 22: Connection refused 

Ich habe versucht, die sshKeys Metadaten zu löschen als Antwort in einem anderen SO vorgeschlagen, und schließen Sie sie wieder, die dies taten:

INFO: Updated project with new ssh key. It can take several minutes for the instance to pick up the key. 
INFO: Waiting 120 seconds before attempting to connect. 
INFO: Running command line: ssh -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /Users/mark1/.ssh/google_compute_engine -A -p 22 [email protected] -- 
ssh: connect to host 23.251.133.2 port 22: Connection refused 

Ich versuche dann für die erste Instanz in einer anderen Zone, es funktioniert gut mit dem neuen Schlüssel:

gcutil --service_version="v1" --project="river-ex-217" ssh --zone="europe-west1-b" "image1" 

Beide Instanzen auf demselben „default“ Netzwerk mit Port 22 läuft, und ssh arbeitet für die erste Instanz das Bild von erstellt.

Ich versuchte Befehl von der anderen Instanz und meinem lokalen Rechner nc, zeigt es keine Ausgabe:

nc 23.251.133.2 22 

... während der ursprünglichen VM ip zeigt diese Ausgabe:

nc 192.157.29.255 22 
SSH-2.0-OpenSSH_6.0p1 Debian-4 

I‘ Ich habe versucht, das Bild erneut zu erstellen und die Instanz erneut hinzuzufügen, kein Unterschied.

Ich habe versucht, mich an der ersten Instanz anzumelden und den Benutzer auf einen auf diesem Rechner umzuschalten (welcher derselbe wie der zweite Rechner sein sollte?), Und ssh von dort.

WARNING: You don't have an ssh key for Google Compute Engine. Creating one now... 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
INFO: Updated project with new ssh key. It can take several minutes for the instance to pick up the key. 
INFO: Waiting 300 seconds before attempting to connect. 
INFO: Running command line: ssh -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /home/mark/.ssh/google_compute_engine -A -p 22 [email protected] -- --zone=europe-west1-a 
ssh: connect to host 23.251.133.2 port 22: Connection refused 

ich aus Ideen bin, jede Hilfe sehr dankbar :) Das maddening thiing I ist die neue VM ist Live mit der Anwendung bereit zu sehen, ich muss nur ein paar Dateien hinzufügen und einrichten einige Cronjobs. Ich denke, ich könnte dieses Pre-Image machen, aber ich würde mich gerne zu einem späteren Zeitpunkt einloggen und es modifizieren können, ohne dass ich 1 Stunde brauche, um Bilder zu erstellen und jedes Mal neue Instanzen zu starten.

Mit freundlichen Grüßen Mark

+0

Mit dem gleichen Problem. –

+0

Ich habe auch in der GoogleGroup gepostet und ein Google-Typ schaut es an und benutzt die Ausgabe von "gcutil getserialportoutput ", um es zu finden – Mark

+0

Ich habe gerade meine persistente Festplatte gelöscht und neu gestartet:/Zum Glück Wir haben ein ziemlich gutes create_dev_env-Skript, oder das wäre wirklich keine Option gewesen. –

Antwort

4

Diese Frage scheint, wie zu debuggen SSH-Verbindungsprobleme mit Bildern, also hier ist meine Antwort darauf zu sein.

Es scheint, dass Ihre Instanz den SSH-Server möglicherweise nicht ordnungsgemäß ausführt. Mit dem vorbereiteten Bild kann etwas nicht stimmen.

Möglicherweise nützliche Debugging-Fragen, sich zu fragen:

  • Haben Sie gcimagebundle, um das Bild zu bündeln oder tat es manuell? Erwägen Sie, das Tool zu verwenden, um sicherzustellen, dass Sie nicht etwas übersehen haben.
  • Haben Sie Änderungen an der Konfiguration des SSH-Servers vorgenommen, bevor Sie das Image gebündelt haben?
  • Wenn die Instanz bootet, überprüfen Sie ihre Konsolenausgabe für ssh-Nachrichten - es sollte die Schlüssel neu generieren, sshd-Daemon starten und Port 22 überwachen. Wenn es nicht tut oder sich über etwas im Zusammenhang mit ssh beschwert, sollten Sie weitermachen Das.

Sie bedeckt diese, aber der Vollständigkeit halber, diese auch geprüft werden sollten:

  • Können Sie sonst die VM erreichen, nachdem es kommt? Reagiert es auf Webserver-Ports (falls vorhanden) oder reagiert auf Ping?
  • Überprüfen Sie, ob das Netzwerk, in dem Sie sich befinden, Zugriff auf SSH (Port 22) von dem Host aus ermöglicht, von dem aus Sie sich verbinden.

Sie können Ihre ssh-Setup, dass eines Arbeits Bild vergleichen:

  • Erstellen Sie eine neue Festplatte (Disk-mine-1) aus dem Bild.
  • Erstellen Sie eine neue Festplatte (disk-upstream-1) von jedem funktionierenden Boot-Image, zum Beispiel debian wheezy.
  • Schließen Sie beide an eine VM an, auf die Sie zugreifen können (entweder über die Konsole oder über CLI).
  • SSH in die VM.
  • Montieren sowohl der Bilder (Sudo mkdir/mnt/{Mine vorgeschalteten} & & Sudo mount/dev/sdb1/mnt/Mine & & Sudo mount/dev/sdc1/mnt/upstream). Beachten Sie, dass die Angabe, ob Ihr Bild sdb oder sdc ist, von der Reihenfolge abhängt, in der Sie die Bilder angehängt haben!
  • Suchen Sie nach Unterschieden zwischen der SSH-Konfiguration (diff -waur/mnt/{meine, upstream}/etc/ssh). Es sollte keine geben, wenn Sie sie nicht ausdrücklich benötigen.
  • Überprüfen Sie auch, ob Ihr Bild richtige /mnt/mine/etc/init.d/{ssh,generate-ssh-hostkeys} Skripte hat. Sie sollten auch von /mnt/mine/etc/rc{S.2}.d (S10generate-ssh-hostkeys bzw. S02ssh) verlinkt werden.
Verwandte Themen