2013-10-08 4 views
5

Ich versuche ein vorhandenes Schlüsselpaar von meinem Computer zu importieren, um es in EC2 zu verwenden. Aber sobald ich auf "Ja, Importieren" klicke, stimmt der Fingerabdruck von Amazon nicht mit dem von ssh -lf für denselben Schlüssel angezeigten Fingerabdruck überein. Ich habe überprüft, dass es sich um den gleichen Schlüssel handelt, habe versucht, den Schlüssel erneut zu importieren usw. Die gängige Praxis scheint zu sein, stattdessen den Teil "Schlüsselpaare erstellen" zu verwenden, aber ich würde lieber mein übliches SSH-Schlüsselpaar verwenden. Ich kann mich auch nicht mit SSH in eine Instanz anmelden, die dieses Schlüsselpaar verwenden soll (ich bekomme Permission denied (publickey).).Schlüsselpaar in Amazon AWS importieren - falscher Fingerabdruck?

Hat jemand solche Probleme mit AWS festgestellt? Irgendwelche Einblicke in was das Problem sein könnte?

+1

Ich habe eine ausführlichere Antwort auf ServerFault hier hinzugefügt: http://serverfault.com/q/603982/102814 –

Antwort

7

Es scheint an answer in the AWS forums für den Fingerabdruckunterschied zu sein. Ich bin Einfügen den Inhalts hier für die Nachwelt:

Hallo,

ich mit meinen Kollegen diskutiert und sieht aus wie eine Beschränkung von unser Ende ist Keypair in anderem Format zu liefern. Sie werden die unterschiedlichen Längen des von Amazon generierten Schlüsselpaares und des Importschlüssels Paar bemerken. Im Fall eines von Amazon generierten Schlüsselpaars lautet der Fingerabdruck für den privaten Schlüssel, während der Fingerabdruck für den öffentlichen Schlüssel verwendet wird, wenn Sie Schlüsselpaar importieren verwenden. Amazon keine Kopie des erzeugten Private Key behalten, aber die EC2 Kommandozeilen-Tools zur Verfügung stellen zu tun, einen Weg zu reproduzieren die SSH2 MD5 Fingerabdruck:

EC2-Fingerabdruck-Schlüssel ./testpair1-private.pem 61: 26: cc: 7d: 2a: 2c: a4: e9: fb: 86: ca: ef: 57: d6: 68: f8: 24: bc: 59: cd

Dies sollte mit dem übereinstimmen, was Sie in der Konsole sehen für die Region, in der Sie den Schlüssel, wie US-West-1 (North California) erstellt. Leider verfügt das Befehlszeilentool ec2-fingerprint-key nicht über die öffentlichen Schlüssel des Fingerabdrucks . Wenn Sie den öffentlichen Schlüssel in eine andere Region importieren, z. B. US-Ost-1, zeigt die Web AWS Console nur den Fingerabdruck des öffentlichen Schlüssels an.

Zweitens, die AWS-Konsole sollte klar sein, genau auf, welche Art von Fingerabdruck zeigt es, welche der „MD5 öffentliche Schlüssel Fingerabdruck als in Abschnitt 4 RFC4716“ ist (auch als SSH2-Format bekannt) als erwähnte hier:

http://docs.amazonwebservices.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-ImportKeyPair.html

Wir haben bereits in ein Feature-Request für die webbasierte AWS-Konsole setzen haben das häufige OpenSSH-Format zu unterstützen. Leider war ich nicht fähig, irgendwelche benutzerfreundlichen Werkzeuge zu finden, um den SSH2/RFC4716 Format Fingerabdruck zu erzeugen, obwohl ich fand, dass Sie den gleichen öffentlichen Schlüssel in Ihrer ursprünglichen Region (mit einem Namen wie "Test2") importieren können und passen den angezeigten Fingerabdruck zwischen Regionen an.

(Hervorhebungen von mir)

Als er erwähnt, ich war auch kein Werkzeug zum Lokalisieren der Lage, das SSH2/RFC4716 Format Fingerabdruck zu erzeugen.Dies löst zumindest das Geheimnis der nicht übereinstimmenden Fingerabdrücke (zumindest wenn wir davon ausgehen, dass ssh-keygen -lf eine Ausgabe im "üblicheren OpenSSH-Format" liefert, bitte korrigieren Sie mich, wenn diese Annahme falsch ist); Ich bekomme immer noch eine Permission denied (publickey), wenn ich versuche, ssh, aber ich nehme an, es ist jetzt keine tatsächliche Schlüsselübereinstimmung und andere Möglichkeiten zu erkunden.

+0

Interessante Antwort, danke. Übrigens, wie bist du zu dem Thema gekommen (ich glaube, du solltest es jetzt schon tun)? –

+0

Für mich war es vergessen, zu spezifizieren "admin @' ...> _ < – phyzome

+0

Alte Frage, aber ich hatte heute die gleiche Berechtigung verweigert (publickey), und schlug meinen Kopf gegen es für fast eine halbe Stunde ... vor der Erkenntnis Ich habe ein Amazon-Linux-Image anstelle eines Ubuntu-Images hochgespielt, also war der Standardbenutzer "ec2-user" anstelle von "ubuntu". – SomeCallMeTim