GitHub empezó a rechazar claves SSH sin su archivo .pub acompañante

Fuentes: GitHub suddenly rejected my SSH key (the fix was a .pub file?!)

Un desarrollador documenta cómo GitHub dejó de aceptar de repente su clave SSH privada en su portátil principal, sin que hubiera realizado ningún cambio local. El error mostraba 'Permission denied (publickey)' al ejecutar 'git pull', aunque la misma clave seguía registrada en GitHub y la autenticación funcionaba desde otro equipo con otra clave distinta. Tras descartar fallos en la clave (validada con 'openssl rsa -check'), en el algoritmo de firma (rsa-sha2-512) y en la configuración de ~/.ssh/config, descubrió que el problema era la ausencia del archivo .pub asociado a la clave privada. Al regenerarlo con 'ssh-keygen -y -f ~/.ssh/github_rsa > ~/.ssh/github_rsa.pub', la autenticación se restableció de inmediato. El autor reprodujo la prueba doce veces: sin .pub GitHub rechaza la conexión; con .pub la acepta. Según explica, la presencia del archivo .pub cambia el flujo de autenticación de OpenSSH: con él, el cliente primero ofrece la clave pública y espera la confirmación del servidor antes de firmar; sin él, envía directamente una solicitud firmada, un método válido según la RFC 4252 que un servidor sshd estándar acepta. El autor sospecha que GitHub actualizó recientemente su software de servidor SSH (el banner pasó de 'babeld-' a '6a2c000') y que la nueva versión rechaza las solicitudes firmadas directamente, lo que explicaría el fallo repentino sin cambios en el cliente. Recomienda verificar que cada clave privada tenga su archivo .pub correspondiente.