amazon web services - sent - Error de conexión AWS SSH: permiso denegado(clave pública)
permission denied(publickey). ssh aws ec2 (8)
Estoy intentando conectarme a mi instancia EC2 con SSH y Iḿ enloqueciéndome. He leído esta publicación e intenté todas las combinaciones de usuario:
Acceso AWS ssh ''Permiso denegado (clave pública)''
Todavía no funciona para mí. ¿Alguna idea de lo que me estoy perdiendo?
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:
De acuerdo con las sugerencias 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).
Aunque no es específico de AWS, este mensaje de error no es útil
debug1: key_parse_private2: missing begin marker
ocurrirá bajo un puñado de escenarios oscuros, como cuando la propiedad (o los permisos) en el directorio de inicio del usuario SSH son incorrectos en la máquina remota.
La mejor manera de solucionar este y otros mensajes oscuros similares es examinar el registro de autorización en la máquina remota, siempre que tenga acceso, ya que generalmente identificará el problema. En los sistemas Debian y Ubuntu, esto se logra más fácilmente con tail
(use sudo según corresponda):
tail -f -n 80 /var/log/auth.log
En mi caso particular, encontré
Authentication refused: bad ownership or modes for directory /var/www
Perfectamente preciso y conciso: el propietario: grupo se estableció en daemon:daemon
cuando debería haber sido www-data:www-data
(esto fue en una máquina Ubuntu que debe haber tenido algún otro servidor web instalado en el pasado).
Iniciar sesión como "admin" funcionó para mí. Según el tipo de instancia, el usuario de inicio de sesión cambia. ec2-user o ubuntu o en mi caso admin. ssh -v -i ./my_key_file.pem [email protected]
También asegúrese de que el permiso para el archivo pem es 600 chmod 600 ./my_key_file.pem
Otra cosa para comprobar es PermitRootLogin
y AllowUsers
en /etc/ssh/sshd_config
.
Este debug1: key_parse_private2: missing begin marker
aparece incluso después de la autorización correcta de la clave si su acceso de usuario está restringido.
Probablemente estés iniciando sesión como el usuario equivocado. Si se trata de una instancia de Ubuntu, el comando sería:
ssh -v -i ec2-key-pair.pem [email protected]
Pruebe estos pasos:
ssh-keygen -R 54.72.242.0
sudo chmod 600 ec2-key-pair.pem
y entonces:
ssh -i ec2-key-pair.pem [email protected]
Sí, de hecho un mensaje bastante engañoso. En mi caso, utilicé una clave incorrecta, por ejemplo.
Tuvimos que eliminar el par de claves y crear uno nuevo, excepto que nuestra instancia siguió usando el anterior (porque no puede hacerlo tan fácilmente).
El mensaje de error fue el mismo, por lo que vale la pena verificar que el nombre de la clave en el panel de instancia de Aws coincida con el par de claves que se usa en paris clave.
Tuve un problema similar, "key_parse_private2: missing comience marker" mientras usaba el nombre de usuario ''ec2-user'', pero se corrigió cuando cambié a ubuntu como el usuario.
Una manera fácil de obtener este error es un archivo corrupto .pem.
Por ejemplo, si falta la última línea, obtiene "marcador de inicio faltante".
Asegúrate de que el .pem termine con:
----- END RSA PRIVATE KEY -----