OpenSSH no acepta claves ECDSA

9

Acabo de generar una clave ECDSA con ssh-keygen:

ssh-keygen -t ecdsa -b 521 

Luego procedí a copiar esta clave en mi servidor:

cat .ssh/id_ecdsa.pub | ssh myserver "tee -a .ssh/authorized_keys"

He verificado que mi clave está en el archivo.

Sin embargo, cuando intento conectarme, mi conexión es rechazada:

ssh -v -i .ssh/id_ecdsa myserver

Registros:

OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to myserver [192.168.1.1] port 22.
debug1: Connection established.
debug1: identity file .ssh/id_ecdsa type 3
debug1: Checking blacklist file /usr/share/ssh/blacklist.ECDSA-521
debug1: Checking blacklist file /etc/ssh/blacklist.ECDSA-521
debug1: identity file .ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.1
debug1: match: OpenSSH_6.1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 10:27:b8:78:2c:e1:e3:42:8e:e3:66:c4:cc:4e:f1:c0
debug1: Host 'myserver' is known and matches the RSA host key.
debug1: Found key in /home/naftuli/.ssh/known_hosts:73
debug1: ssh_rsa_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: Offering ECDSA public key: .ssh/id_ecdsa
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

Encontré esto en los registros del servidor:

auth.info sshd[13874]: userauth_pubkey: unsupported public key algorithm: ecdsa-sha2-nistp521 [preauth]

Tanto mi cliente como el servidor están usando OpenSSH. La versión OpenSSH del servidor es OpenSSH 6.1, la versión OpenSSH de mi cliente es OpenSSH 5.9.

¿Cómo puedo saber qué algoritmos clave son compatibles con mi servidor?

Naftuli Kay
fuente
OpenWRT 12.09 Ajuste de actitud. Puedo recompilar el servidor OpenSSH si es necesario. ¿Hay alguna manera de al menos enumerar los algoritmos compatibles?
Naftuli Kay

Respuestas:

7

Al igual que muchos otros sistemas integrados, OpenWrt usa dropbear como su servidor ssh, no el OpenSSH más pesado que se ve comúnmente en los sistemas Linux. Las versiones anteriores de dropbear solo admiten claves RSA y DSA; el soporte para ECDSA no se agregó hasta la versión 2013.62 (que solo se lanzó hace unos días).

Debería aparecer pronto en Barrier Breaker (tronco); pero no lo verá en Ajuste de actitud.

Michael Hampton
fuente
De hecho, he instalado y configurado OpenSSH en mi enrutador OpenWRT. Por eso me sorprende que no funcione.
Naftuli Kay
es decir: no estoy usando dropbear y se ha desinstalado.
Naftuli Kay
En ese caso, estás (1) solo y (2) aparentemente fuera de los límites de lo que esperaría en un entorno profesional.
Michael Hampton
Supongo que sí. Me pondré en contacto con OpenWRT al respecto y veré qué puedo hacer. OpenSSH se proporciona como un paquete en OpenWRT, por lo que me pregunto por qué eso me pondría solo.
Naftuli Kay
0

ecdsaes compatible con openssh-server versión 5.7 . ¿Qué versión de openssh-server está ejecutando? corre dpkg -l | grep openssh-server | awk '{print $3}' | cut -d: -f2para encontrar la versión.

slayedbylucifer
fuente
0

Si su sistema es Red Hat Enterprise Linux 6.4 (o anterior) o Fedora 19 (o anterior), tenga en cuenta que ECDSA fue eliminado de allí. No tengo ningún detalle por qué fue eso (quizás razones legales): https://www.mail-archive.com/[email protected]/msg00755.html

lzap
fuente
ECDSA está en RHEL 6.5. como parte de openssl 1.0.1 y también tenga en cuenta que el OP aclara que están utilizando OpenWRT 12.09
user9517
Oh cierto, editado.
lzap
3
Sí, fueron razones legales. Aún así, hasta el día de hoy, no todos los distribuidores habilitan la criptografía de curva elíptica debido a las patentes; RedHat solo habilitó algunas curvas, no ECC en general, después de una cuidadosa revisión legal, pero las que sí habilitaron fueron influenciadas por el NIST (y, por lo tanto, el NSA). Es posible que desee mantenerse alejado de ECC, incluso si la potencia informática reducida es engañosamente agradable.
mirabilos
0

Dejando esto aquí porque esto me pasó a mí:

Día 1: configurando una nueva máquina, copié las claves, primero la mía, y pude iniciar sesión bien.

Día 2: No puedo iniciar sesión con mi clave ed25519. ¿Eh? Añado una clave RSA; funciona. Genero una nueva clave ed25519 y que funciona ... pero mi viejo no lo hace. WTF?

Resulta que después de la prueba, instalé mi clave en la raíz .ssh / Authorizedkeys como copia de seguridad ... y olvidé corregir los permisos en ese archivo. Así que openssh puso en la lista negra mi clave, por lo que no pude iniciar sesión. Arreglar los permisos en /root/.ssh/authorized_keys me permitió iniciar sesión como mi usuario .

pjz
fuente