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 obsoletoPubkeyAcceptedKeyTypes
en lugar dePubkeyAcceptedAlgorithms
(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?
P: ¿Les importa?
-
¡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
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
张馆长
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
Jaroslav Bezděk
En tus ~/.ssh/config
archivo, agregue estas líneas.
Host *.drush.in
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
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
También discutido en public-inbox.org/git/…
– VoC
10 de enero de 2022 a las 23:56