Hace unos días estuve tratando de hacer una conexión con el servidor de AWS, mediante el archivo certificado PEM, pero al conectar me dio error sign_and_send_pubkey no mutual signature supported, veremos como resolverlo.
Este error aparece cuando las versiones de OpenSSH no son compatibles y se están usando versiones antiguas para el cifrado.
Solución
Primero nos intentamos conectar al servidor con el comando ssh
.
ssh -i mi-archivo.pem [email protected]
The authenticity of host 'server.com (XXX.XXX.XXX.XXX)' can't be established.
ED25519 key fingerprint is SHA256:1v6TdZWt6OxzinzafQm8C16/WNQHpJ83eEvmL0PxdAQ.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'server.com' (ED25519) to the list of known hosts.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'mi-archivo.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "mi-archivo.pem": bad permissions
[email protected]: Permission denied (publickey).
El error se refiere a los permisos que tiene el archivo PEM, por esto hay que cambiar los permisos con chmod
.
chmod 400 mi-archivo.pem
Cuando intento conectarme de nuevo, es cuando el error salta:
ssh -i mi-archivo.pem [email protected]
sign_and_send_pubkey: no mutual signature supported
[email protected]: Permission denied (publickey).
Al comando le agregamos el parámetro PubkeyAcceptedKeyTypes
, que básicamente indica que el cliente (o sea yo) aceptará el formato de las keys enviadas por el servidor y así hacer compatible la comunicación.
ssh -i mi-archivo.pem \
-o PubkeyAcceptedKeyTypes=+ssh-rsa \
[email protected]
Welcome to Ubuntu XX.XX.X LTS (GNU/Linux X.XX.X-generic x86_64)
...
Con esto ya nos podemos conectar cuando nos dé el error sign_and_send_pubkey no mutual signature supported.
Saludos.