web-dev-qa-db-fra.com

Erreur de connexion AWS SSH: autorisation refusée (publickey)

J'essaie de me connecter à mon instance EC2 avec SSH et je deviens fou. J'ai lu ce post et essayé toutes les combinaisons d'utilisateurs:

Problème 'Autorisation refusée (publickey)' d'accès AWS ssh

Cela ne fonctionne toujours pas pour moi. Une idée de ce qui me manque?

  roberto@ubuntu:~/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: 

Selon les suggestions de @aldanux:

    roberto@ubuntu:~/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
roberto@ubuntu:~/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

Essayez ces étapes:

ssh-keygen -R 54.72.242.0

Sudo chmod 600 ec2-key-pair.pem

et alors:

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

Vous vous connectez probablement avec le mauvais utilisateur. Si c'est une instance Ubuntu, la commande serait:

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

Bien que non spécifique à AWS, ce message d'erreur inutile

debug1: key_parse_private2: missing begin marker

se produira dans une poignée de scénarios obscurs, tels que lorsque la propriété (ou les autorisations) sur le répertoire de base de l'utilisateur SSH est incorrecte sur la machine distante.

La meilleure façon de résoudre ce problème et d'autres messages obscurs similaires consiste à examiner le journal des autorisations sur la machine distante, à condition que vous y ayez accès, car cela permettra généralement d'identifier le problème. Sur les systèmes Debian et Ubuntu, ceci s’effectue plus facilement avec tail (utilisez Sudo selon vos besoins):

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

Dans mon cas particulier, j'ai trouvé

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

Parfaitement précis et concis: le propriétaire: le groupe était défini sur daemon:daemon alors qu'il aurait dû l'être www-data:www-data (il s'agissait d'une machine Ubuntu sur laquelle un autre serveur Web aurait dû être installé dans le passé).

16
Ben Johnson

J'ai eu un problème similaire, "key_parse_private2: marqueur de début manquant" lors de l'utilisation du nom d'utilisateur 'ec2-user', mais il a été résolu lorsque j'ai changé pour ubuntu en tant qu'utilisateur.

5
changeagent

Une autre chose à vérifier est PermitRootLogin et AllowUsers dans /etc/ssh/sshd_config.

Ce debug1: key_parse_private2: missing begin marker apparaît même après une autorisation de clé réussie si votre accès utilisateur est restreint.

1
FelikZ

Oui, effectivement un message assez trompeur. Dans mon cas, j'ai utilisé une mauvaise clé par exemple.

Nous avions besoin de supprimer la paire de clés et d'en créer une nouvelle, sauf que notre instance utilisait toujours l'ancienne (car vous ne pouvez pas le faire aussi facilement). 

Le message d'erreur était le même, il est donc intéressant de vérifier que le nom de la clé dans votre panneau d'instance aws correspond à la paire de clés que vous utilisez dans la clé paris.

0
Bartosz Dabrowski

Se connecter en tant qu'administrateur a fonctionné pour moi. En fonction de votre type d'instance, l'utilisateur de connexion change. ec2-user ou Ubuntu ou, dans mon cas, admin . ssh -v -i ./my_key_file.pem [email protected]

Assurez-vous également que l'autorisation pour le fichier pem est de 600 Chmod 600 ./my_key_file.pem

0
Anish

Un moyen simple d’obtenir cette erreur est un fichier .pem corrompu.

Par exemple, si la ligne last est manquante, vous obtenez "le marqueur de début manquant".

Assurez-vous que le .pem se termine par:

----- FIN RSA CLE PRIVEE -----

0
TimT