Intento enviar cambios desde mi repositorio local a un repositorio remoto. Cuando escribo:
git push origin
Obtuve el siguiente error:
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
Connection abandoned.
fatal: The remote end hung up unexpectedly
¿Como puedo resolver esto? Estoy usando git desde la línea de comando en Windows 7.
Editar
Cuando trato de hacer un ssh simple
ssh user@hostname
Obtuve el siguiente error:
Could not create directory '/c//%HOMEDRIVE%%HOMEPATH%/.ssh'.
percent_expand: unknown key %H
De alguna manera no creará el directorio, porque la ruta no es válida. ¿Cómo arreglar esto?
@eckes: Edit2
Mi casa está configurada en %HOMEDRIVE%%HOMEPATH%
¿esto es correcto?
$HOME
no está configurado correctamente. Intente configurar laHOME
variable de entorno en Windows usandoMy Computer
-> clic derecho ->Properties
-> TabAdvanced
-> BotónEnvironment Variables
/c//
(presumiblemente una letra de unidad) todavía tenga%HOMEDRIVE%
... ¿Podría ahorrarse algo de tiempo jugando con el valor usted mismo y haciéndolo eco?HOMEDRIVE
yHOMEPATH
establezcaHOME
el valor resultante ...Respuestas:
El mensaje significa que la clave de host de
origin
no está presente en su archivo de hosts de confianza.Para evitar esto, abra una conexión SSH simple
origin
y SSH le preguntará si desea confiar en el host remoto (desde la consola Git):Si confía en el host remoto (es decir, el tipo
yes
), SSH agregará su clave a la lista de hosts conocidos.Después de eso, debería poder hacer su
git push origin
.Como alternativa, también puede agregar manualmente la clave de
origin
a,.ssh/known_hosts
pero esto requiere que se adhiera al formato delknown_hosts
archivo como se describe en la página de manual desshd
(Sección AUTHORIZED_KEYS FILE FORMAT ).fuente
known_hosts
archivo.Para aquellos de ustedes que están configurando MSYS Git en Windows usando PuTTY a través del símbolo del sistema estándar, la forma de agregar un host al caché de PuTTY es ejecutar
Por ejemplo:
Solo responde
y
y luego Ctrl + C el resto.Sin embargo, compruebe la huella digital. Esta advertencia está ahí por una buena razón. Huellas digitales para algunos servicios de git (edite para agregar más):
16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
7e:af:8d:ec:f0:39:5e:ba:52:16:ce:19:fa:d4:b8:7d
fuente
plink
ejecutando$ set | grep GIT_SSH
y comprobandoGIT_SSH='C:\Program Files (x86)\PuTTY\plink.exe'
-P
para seleccionar el puerto, tales como:plink.exe example.com -P 2222
. Pude clonar desde github pero no desde mi servidor personal, y esto me confundió muchísimo.Intente hacer un "set | grep -i ssh" desde el indicador de Git Bash
Si su configuración es como la mía, probablemente tenga estos configurados:
hice un
y funcionó después de eso, ... supongo que Putty guarda sus claves en otro lugar como $ HOME / .ssh o algo ... (También tuve un problema en una caja donde $ HOME estaba configurado en "C: \ Users \ usrnam "en lugar de" / C / Users / usrnam / "
de todos modos, su kilometraje puede variar, pero eso me solucionó. :-)
(probablemente solo hacer el GIT_SSH sin configurar es suficiente, pero estaba en una buena racha)
Nota: si desarmar no funciona para usted, intente esto:
fuente
unset GIT_SSH
también funcionó para mí, aunque tengo que hacerlo cada vez que lanzo git bash, lo cual es bastante aburrido. ¿Alguna idea de cómo automatizar eso?Sospecho que su
GIT_SSH
variable de entorno está configurada en%ProgramFiles(x86)%\putty\plink.exe
. Por alguna razón, PLink no usa el.ssh/known_hosts
archivo en su directorio de usuario para almacenar las claves de hosts remotos.Si este es realmente su caso, y podría serlo a propósito si desea usar el concurso, primero debe usar PLink para conectarse al anfitrión.
Deberías recibir un mensaje similar
Una vez que haya respondido
y
a la pregunta y se haya conectado correctamente al host remoto, debe estar listo. Adelante, intente empujar de nuevo.fuente
"$GIT_SSH" -P 7999 [email protected]
No basta con enviar un mensaje al host, al menos en Windows. Eso agrega la clave de host a,
ssh/known_hosts
pero el error aún persiste.Debes cerrar la ventana de git bash y abrir una nueva. Luego, se borra la caché del registro y luego funciona el push / pull.
fuente
ssh/known_hosts
¿Es relativo a qué?% PERFIL DE USUARIO% Tengo este problema en Win 7 y no hay solución ...Rene, tu
HOME
variable no está configurada correctamente. Cambie ac:\Users\(your-username)
o simplemente a%USERNAME%
.fuente
Solución con Plink
Guarde este script de Python en
known_hosts.py
:Probado en Win7x64 y Python 2.7 .
Entonces corre:
Y elige importar al registro. El keyscan recuperará la clave pública para el dominio (tuve mis problemas con bitbucket), y luego el script de Python lo convertirá al formato Plink.
fuente
Tuve el mismo problema y se olvidó de conectarse a SSH en el puerto donde está el repositorio actual , no solo el puerto SSH general, ¡entonces la clave de host es diferente!
fuente
Simplemente abra Putty e intente establecer una conexión con el servidor remoto al que desea enviar su código. cuando aparezca el cuadro de diálogo, presione Sí (confía en el control remoto), entonces todo estará bien.
fuente
Ambiente de trabajo:
Primero: Elimine putty known_hosts en registy de acuerdo con Regedit.
Entonces: Ejecutar el comando
%GIT_SSH% user@hostname
en el cmd de Windows resuelve el problema.Espero que os ayude a todos.
fuente
Yo también tuve el mismo problema cuando intentaba clonar un repositorio en mi máquina con Windows 7. Probé la mayoría de las respuestas mencionadas aquí. Ninguno de ellos funcionó para mí.
Lo que funcionó para mí fue ejecutar el programa Pageant (agente de autenticación Putty). Una vez que el concurso se ejecutó en segundo plano, pude clonar, empujar y extraer desde / hacia el repositorio. Esto funcionó para mí, puede deberse a que configuré mi clave pública de manera que cada vez que se usa por primera vez se requiere una contraseña y se inicia el concurso.
fuente
Connection abandoned
, pero algo asíAccess denied (private key)
Cambiar de PuTTY a OpenSSH solucionó este problema, sin necesidad de desarmar GIT_SSH, etc.
fuente
Resolví un problema similar usando esta solución .
Solo tiene que cambiar a Embedded Git, presionar, presionar el botón Sí y luego volver a System Git.
Puedes encontrar esta opción en
fuente
C:\Users\{UserName}\AppData\Local\SourceTree\app-2.5.5\tools\putty> .\plink.exe {YourNewHost}
Como respondió Roman Starkov ,
plink
necesita agregar el host a su caché.Para las personas que usan extensiones de Git :
(reemplazar con las rutas reales)
p.ej
Nota : ¡Asegúrese de utilizar el mismo plink / klink que utiliza Git Extensions!
fuente
Agregar el host directamente con Bash no resolvió el problema, el error aún se producía al usar 'Obtener todo' en Extensiones de Git. Al usar 'Pull' en una rama, Git Extensions agregó automáticamente el host requerido con una pantalla emergente Bash. Después de hacer esto, pude usar 'Obtener todo' nuevamente. No estoy seguro de qué hace Git Extensions de manera diferente.
fuente
Probé todos los métodos anteriores, pero ninguno de ellos pudo solucionar el mismo problema en mi computadora portátil. Finalmente, en lugar de empujar la rama al origen en git bash, trunco para usar la opción de empujar de TortoiseGit para empujar, luego aparece una ventana para pedirme que agregue la nueva clave de host a la caché, después de hacer clic en el botón sí, todo va bien ahora.
Espero que os ayude a todos.
fuente
Cambié un disco duro, instalé Windows. Cuando intentó cargar archivos, recibió esta ventana de comando.
Presioné "y", luego Ctrl + C. Abrí
putty.exe
, agregué una tecla anterior, regresé a git y presioné archivos.fuente
Simplemente desinstale las extensiones de Git e instale nuevamente eligiendo OpenSSH en lugar de
fuente
En Windows 7 o 10, el truco que me funcionó es eliminar la variable de sistema GIT_SSH. Antes estaba configurado para usar Plink y ahora fue reemplazado por Putty. Esto estaba causando el error Plink.exe
También hubo una instalación antigua de Git (versión de 32 bits) y una actualización a Git (por ejemplo, Git-2.20.1-64-bit.exe) ya que la PC tenía un sistema operativo de 64 bits.
De todos modos, Git ni siquiera usó Putty / Plink, ya que en la instalación de Git estaba predeterminado usar Open SSH.
fuente
Si recibe el mensaje sobre la clave de host no reconocida mientras realiza las operaciones git push / pull utilizando ATLASSIAN SOURCETREE, no tiene la capacidad de responder y / ny la operación push / pull se cancelará sin almacenar la clave en caché. Sin embargo, ir a SourceTree Tools-> Options (pestaña General) y cambiar el SSH Client en (en SSH Client Configuration) de PuTTY a OpenSSH permitirá que la clave se almacene en caché sin cambiar nada más.
fuente