Error de Git: no se encontró ningún tipo de clave de host coincidente. Su oferta: ssh-rsa

5 minutos de lectura

Avatar de usuario de Jaroslav Bezděk
Jaroslav Bezděk

Recibo el siguiente error al usar git:

$ git pull
Unable to negotiate with 172.16.42.42 port 22: no matching host key type found. Their offer: ssh-rsa
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

¿Cómo puedo resolver este error?

Con SSH, hay varios tipos diferentes de claves y claves RSA (las ssh-rsa) kind puede admitir varios tipos de firmas. El tipo de firma ssh-rsa se refiere a RSA con SHA-1, mientras que el tipo de firma rsa-sha2-256 es RSA con SHA-256 y rsa-sha2-512 es RSA con SHA-512.

En el caso de Azure DevOps, solo admite el tipo de RSA con SHA-1, y SHA-1 se considera muy débil. Básicamente, esto significa que no hay formas seguras de conectarse a través de SSH y, hasta que lo arreglen, es mejor que use HTTPS o un servicio de alojamiento diferente. GitHub, GitLab y Bitbucket admiten métodos seguros de autenticación.

Si realmente necesita usar SSH con Azure DevOps en este momento, puede agregar una entrada a su ~/.ssh/config archivo para evitar esto:

Host ssh.dev.azure.com
    User git
    PubkeyAcceptedAlgorithms +ssh-rsa
    HostkeyAlgorithms +ssh-rsa

Sin embargo, tenga en cuenta que se trata de una solución alternativa y que se sabe que no es seguro, por lo que debe ponerse en contacto con Azure DevOps acerca de este problema y cambiar a HTTPS hasta que lo hagan, o cambiarse a otro lugar.

  • ¡Ajá! Esto finalmente solucionó mi problema de ssh por separado. Intenté toneladas de otras opciones.

    – twhitney

    17 de noviembre de 2021 a las 19:01

  • ¡Confirmado el problema! Resuelto con las instrucciones anteriores. ¡Gracias! = D Jeez Micro$$ suave…

    –Eduardo Lucio

    7 de enero de 2022 a las 20:41

  • Recibí este problema después de que el git de Cygwin actualizó 2.32 => 2.34, esta respuesta lo solucionó, ¡gracias!

    – okharch

    11 de enero de 2022 a las 6:04

  • Lamentablemente poner esta opción a ~/.ssh/config podría romper otro software que dependa de OpenSSH más antiguo. Terminé usando un nombre obsoleto PubkeyAcceptedKeyTypes en lugar de PubkeyAcceptedAlgorithms (como se mencionó aquí).

    – Nickolay

    12 de febrero de 2022 a las 13:53

  • Esto solucionó el mismo problema que tuve con un servidor bitbucket autohospedado que no se había actualizado en mucho tiempo. Ellos enumeran los misma solución en su foro.

    – Mullhausen

    20 de junio de 2022 a las 1:43

OpenSSH informará el error
no matching host key type found. Their offer: ssh-rsa
si el servidor al que se conecta ofrece autenticarse ssh-rsa ( RSA/SHA1).

Azure Devops (TFS) ofrece autenticarse sobre ssh-rsa. Como se indica en la respuesta de bk2204, este algoritmo no se considera criptográficamente seguro.

Dado que se considera débil, OpenSSH obsoleto usando SHA-1 en 8.2 en 2020-02-14.

ahora es posible[1] para realizar ataques de prefijo elegido contra el algoritmo hash SHA-1 por menos de USD $ 50K. Por este motivo, deshabilitaremos el algoritmo de firma de clave pública “ssh-rsa” que depende de SHA-1 de forma predeterminada en una versión próxima.

Azure DevOps Servicios después anunció un parche permitir SHA-2

El 5 de mayo de 2021, la documentación de Azure DevOps fue actualizado mencionar el uso RSA 3072.

P: ¿Es esto cierto?

¯\_(ツ)_/¯

P: ¿Qué algoritmos son compatibles?

No dice en ningún lado. Probablemente solo ssh-rsa.

P: ¿Cómo uso un algoritmo criptográficamente inseguro?

Agrega esto

  HostkeyAlgorithms +ssh-rsa
  PubkeyAcceptedAlgorithms +ssh-rsa

Para usted ~/.ssh/config

Host your-azure-devops-domain
  IdentityFile ~/.ssh/id_rsa
  IdentitiesOnly yes
  HostkeyAlgorithms +ssh-rsa
  PubkeyAcceptedAlgorithms +ssh-rsa

P: ¿Microsoft sabe que esto es un problema?


ellos
son.

P: ¿Les importa?

No
es un
característica

  • ¡Gracias! Esto funcionó para mí después de actualizar a Ubuntu 22.04.

    – abaga129

    5 de julio de 2022 a las 17:33

  • A partir del 01-08-2022, ssh-rsa sigue siendo lo que usa Azure DevOps Serviciospor lo que su afirmación de parchearlo en 2020 es falsa.

    – Sharparam

    1 de agosto de 2022 a las 13:24

Avatar de usuario de Jaroslav Bezděk
Jaroslav Bezděk

De acuerdo a esta publicaciónpuedes añadir ssh.dev.azure.com configuración de host para su ~/.ssh/config archivo:

Final ~/.ssh/config eso funcionó para mí:

Host ssh.dev.azure.com
    HostName ssh.dev.azure.com
    User git
    IdentityFile ~/.ssh/id_rsa
    IdentitiesOnly yes
    PubkeyAcceptedAlgorithms +ssh-rsa
    HostkeyAlgorithms +ssh-rsa

  • IdentitiesOnly yes PubkeyAcceptedAlgorithms +ssh-rsa HostkeyAlgorithms +ssh-rsa Enfrenté el mismo problema después de la configuración de CodeCommit, pegando arriba de 3 líneas con éxito autenticado git sobre SSH, ¡gracias!

    – Kunal Awasti

    2 de diciembre de 2021 a las 9:14


  • pero sigo atascado. Todo estaba funcionando y de repente dejó de conectar CodeCommit.

    – Amir Ul Islam

    13 mayo 2022 a las 17:05

  • Esto también funciona para HostNames como vs-ssh.visualstudio.com

    – elulcao

    31 de mayo de 2022 a las 16:19

Avatar de usuario de 张馆长
张馆长

scp o ssh podrían usar esto

ssh -p 22 -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa  user@myhost
# or scp
scp -P 22 -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa  user@myhost

Para aquellos que usan Azure DevOps, deben usar lo siguiente ~/.ssh/configya que a Azure le gusta variar la URL que devuelve en su Repositorio de clones:

Host ssh.dev.azure.com
  PubkeyAcceptedAlgorithms +ssh-rsa
  HostkeyAlgorithms +ssh-rsa

Host vs-ssh.visualstudio.com
  PubkeyAcceptedAlgorithms +ssh-rsa
  HostkeyAlgorithms +ssh-rsa

Avatar de usuario de Jaroslav Bezděk
Jaroslav Bezděk

En tus ~/.ssh/config archivo, agregue estas líneas.

Host *.drush.in
    HostkeyAlgorithms +ssh-rsa
    PubkeyAcceptedAlgorithms +ssh-rsa

Avatar de usuario de Leonardo Repolust
leonardo repollo

También tengo este problema, esto funcionó para mí:

cd ~/.ssh/
vim config

Host [Hostname]
User [User]
PubkeyAcceptedAlgorithms +ssh-rsa
HostkeyAlgorithms +ssh-rsa

Tengo este problema para algunos nombres de host, así que ahora tengo varias de esas configuraciones en mi archivo de configuración ssh.

  • y archivo de identidad?

    – Amir Ul Islam

    13 mayo 2022 a las 17:54

¿Ha sido útil esta solución?