it-swarm.com.de

AWS SSH-Verbindungsfehler: Berechtigung abgelehnt (Veröffentlichungsschlüssel)

Ich versuche mit SSH eine Verbindung zu meiner EC2-Instanz herzustellen und ich werde verrückt. Ich habe diesen Beitrag gelesen und alle Benutzerkombinationen ausprobiert:

AWS-SSH-Zugriff "Berechtigung verweigert (publickey)"

Es funktioniert immer noch nicht für mich. Irgendeine Idee, was fehlt mir?

  [email protected]:~/keys$ ssh -v -i ec2-key-pair.pem [email protected]
OpenSSH_6.6, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to ec2-54-72-242-0.eu-west-1.compute.amazonaws.com [54.72.242.0] port 22.
debug1: Connection established.
debug1: identity file ec2-key-pair.pem type -1
debug1: identity file ec2-key-pair.pem-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6p1 Ubuntu-2ubuntu1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.2
debug1: match: OpenSSH_6.2 pat OpenSSH* compat 0x04000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr [email protected] none
debug1: kex: client->server aes128-ctr [email protected] none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server Host key: ECDSA e4:06:ee:a5:a5:d2:97:5f:0f:b7:06:5e:f2:b3:da:26
debug1: Host 'ec2-54-72-242-0.eu-west-1.compute.amazonaws.com' is known and matches the ECDSA Host key.
debug1: Found key in /home/roberto/.ssh/known_hosts:3
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: ec2-key-pair.pem
debug1: key_parse_private2: missing begin marker
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

UPDATE: 

Laut @aldanux-Vorschlägen:

    [email protected]:~/keys$ ssh-keygen -R 54.72.242.0
# Host 54.72.242.0 found: line 4 type ECDSA
/home/roberto/.ssh/known_hosts updated.
Original contents retained as /home/roberto/.ssh/known_hosts.old
[email protected]:~/keys$ ssh -i ec2-key-pair.pem [email protected]
Warning: Permanently added the ECDSA Host key for IP address '54.72.242.0' to the list of known hosts.
Permission denied (publickey).
22
Rober

Versuchen Sie diese Schritte:

ssh-keygen -R 54.72.242.0

Sudo chmod 600 ec2-key-pair.pem

und dann:

ssh -i ec2-key-pair.pem [email protected]
3
Black Sheep

Sie melden sich wahrscheinlich als falscher Benutzer an. Wenn es sich um eine Ubuntu-Instanz handelt, lautet der Befehl:

ssh -v -i ec2-key-pair.pem [email protected]
34
Rico

Diese nicht hilfreiche Fehlermeldung ist zwar nicht spezifisch für AWS

debug1: key_parse_private2: missing begin marker

tritt unter einer Handvoll undeutlicher Szenarien auf, z. B. wenn der Besitz (oder die Berechtigungen) für das Home-Verzeichnis des SSH-Benutzers auf dem Remote-Computer falsch sind.

Die beste Möglichkeit, diese und ähnliche verdeckte Meldungen zu behandeln, besteht darin, das Berechtigungsprotokoll auf dem Remote-Computer zu überprüfen, vorausgesetzt, Sie haben Zugriff, da das Problem normalerweise festgestellt wird. Auf Debian- und Ubuntu-Systemen ist dies am einfachsten mit tail (verwenden Sie ggf. Sudo):

tail -f -n 80 /var/log/auth.log

In meinem speziellen Fall habe ich gefunden

Authentication refused: bad ownership or modes for directory /var/www

Perfekt und präzise: Die owner: group wurde auf daemon:daemon gesetzt, wenn www-data:www-data hätte sein sollen (dies war auf einem Ubuntu-Computer, auf dem früher ein anderer Webserver installiert sein musste).

16
Ben Johnson

Ich hatte ein ähnliches Problem: "key_parse_private2: missing begin marker" bei Verwendung des Benutzernamens 'ec2-user', aber es wurde behoben, als ich als Benutzer zu ubuntu wechselte.

5
changeagent

Eine andere Sache, die Sie überprüfen sollten, ist PermitRootLogin und AllowUsers in /etc/ssh/sshd_config.

Dieser debug1: key_parse_private2: missing begin marker erscheint auch nach erfolgreicher Schlüsselautorisierung, wenn der Benutzerzugriff eingeschränkt ist.

1
FelikZ

Ja, in der Tat eine ziemlich irreführende Nachricht. In meinem Fall habe ich zum Beispiel einen falschen Schlüssel verwendet.

Wir mussten das Schlüsselpaar entfernen und ein neues erstellen, mit der Ausnahme, dass unsere Instanz das alte verwendete (weil Sie es nicht so einfach machen können). 

Die Fehlermeldung war die gleiche, sodass es sich lohnt, den Schlüsselnamen in Ihrem aws-Bedienfeld zu überprüfen, und zwar mit dem Schlüsselpaar, das Sie in Key Paris verwenden.

0

Das Einloggen als "admin" hat für mich funktioniert. Basierend auf Ihrem Instanztyp ändert sich der Anmeldebenutzer. ec2-user oder ubuntu oder in meinem Fall admin . ssh -v -i ./my_key_file.pem [email protected]

Stellen Sie außerdem sicher, dass die Berechtigung für die Pem-Datei 600 Chmod 600 ./my_key_file.pem ist

0
Anish

Eine einfache Möglichkeit, diesen Fehler zu erhalten, ist eine beschädigte PEM-Datei.

Wenn beispielsweise die Zeile last fehlt, erhalten Sie eine "fehlende Startmarkierung".

Stellen Sie sicher, dass das .pem endet mit:

----- ENDE RSA PRIVATE KEY -----

0
TimT