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?
Respuestas:
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.
fuente
ecdsa
es compatible con openssh-server versión 5.7 . ¿Qué versión de openssh-server está ejecutando? corredpkg -l | grep openssh-server | awk '{print $3}' | cut -d: -f2
para encontrar la versión.fuente
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
fuente
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 .
fuente