Git: Permiso denegado (clave pública) fatal: no se pudo leer desde el repositorio remoto. mientras clona el repositorio de Git


153

No puedo clonar un repositorio de Git y obtengo este error:

krishna.soni@KRISHNACHANDRAS /c/Projects $ git clone http://stage.abc.com:10088/pqr
http://<url>/<repository> Cloning into '<repository>'... fatal: could not read Username for 'http://<url>': No such file or directory

He leído Bitbucket, Windows y "fatal: no se pudo leer la contraseña para" , pero aún tengo el problema.

Seguí adelante pero ahora recibo este error

sh.exe": chown: command not found

krishna.soni@KRISHNACHANDRAS /c
$ git clone ssh://krishna.sonipayu.in@stage.payupaisa.
/projects
Cloning into 'C:/projects'...
Permission denied (publickey).
fatal: Could not read from remote repository.

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

> krishna.soni@KRISHNACHANDRAS /c
>     $ git clone ssh:<url>
>     ts
>     Cloning into 'C:/projects'...
>     Permission denied (publickey).
>     fatal: Could not read from remote repository.

Please make sure you have the correct access rights

y el repositorio existe.


¿Estás seguro de que es un repositorio git?
gravetii

sí lo es . Soy nuevo en git, obtengo este error durante la clonación. Agregué correo electrónico y nombre en el archivo de configuración global usando los comandos git config --global user.name "John Doe" $ git config --global user.email johndoe@example.com
KCS

La razón principal es que el repositorio no puede reconocerlo como usuario del servidor git. ¿Podría acceder al servidor a través de ssh?
Малъ Скрылевъ

Si alguien tiene este problema mientras usa Github, siga los pasos mencionados aquí: help.github.com/en/articles/… Funcionó para mí.
Rounak

Respuestas:


69

Parece un problema de permisos, no un problema de Windows 7.

Su clave ssh no está autorizada - Permission denied (publickey).

Debe crear una clave ssh pública y solicitar al administrador del repositorio de Git que agregue la sshclave pública

Información sobre cómo hacer esto: no se puede guardar la clave ssh


27
Esto es raro El repositorio es público y estoy clonando el repositorio público. No estoy seguro de por qué debería pedirle permiso al administrador para clonar su repositorio público alojado en Github.
Shailen

55
Sí, es falso, no necesitas preguntarle nada al administrador, es un problema con el git local.
Ivan Castellanos

3
¿Por qué es difícil? Tuve éxito pero no fue indoloro.
Niklas R.

9
No necesita autorizar una clave para repositorios públicos, solo use el protocolo HTTPS: stackoverflow.com/a/33072867/1385678
Diego V

225

Para las personas que vienen aquí que solo están tratando de obtener el repositorio pero no les importa el protocolo (ssh / https), es posible que solo quieran usar https en lugar de ssh (si es compatible).

Entonces, por ejemplo, usas

git clone https://github.com/%REPOSITORYFOLDER%/%REPOSITORYNAME%.git

en vez de

git clone git@github.com:%REPOSITORYFOLDER%/%REPOSITORYNAME%.git

66
Este es el plan de respaldo más apropiado si los permisos ssh no se resuelven o si desea omitir esa parte.
Wahib Ul Haq

13
Esta respuesta cambió el mecanismo de ssha https. No está resolviendo el problema original usando ssh para acceder al repositorio. Me pregunto cómo esto puede seguir siendo votado como una buena respuesta a la pregunta. Las otras respuestas a continuación lo están resolviendo correctamente.
Armin

3
El problema original es un git novato que intenta clonar un repositorio. Si el objetivo es eliminar un repositorio público, esta es la respuesta más rápida y efectiva.
Vivek Chavda

Gracias por salvarme del suicidio. Por cierto, esto se puede usar para un repositorio privado dado que tiene el nombre de usuario y la contraseña.
BILL WAGNER

81

Si todavía hay problemas con el acceso después de crear SSH y agregarlo en su cuenta de Bitbucket o donde sea, debe hacer lo siguiente en el terminal en GitBash, OSX o Linux:

# Lists already added identities (‘ssh keys’)
ssh-add -l

Luego, si no ve su clave en la lista, agréguela con lo siguiente (reemplace identitycon su nombre real):

# Add a new identity
ssh-add ~/.ssh/identity

Esto funcionó para mí.


3
ssh-add ~/.ssh/identityerror de retorno/Users/lee/.ssh/identity: No such file or directory
lee

14
Ejecutar "ssh-add" desde "~ / .ssh" (e ingresar la frase de contraseña para mi archivo "~ / .ssh / id_rsa" cuando se me solicitó) resolvió el problema.
James Furey

1
Pude sacar mi repositorio pero no presionar sin hacer esto, ¡salud!
Dimitar Nestorov

La respuesta de @james Furey me ayudó con el árbol de origen para identificar la url ssh como un repositorio git
Fan de YSR

2
funcionó para mí ... después de horas de sudar y probar cosas diferentes. Lo único es que en lugar de identidad al final, use el nombre en su propio sistema. Vaya a la carpeta .ssh haciendo el comando cd en la terminal y luego escriba el comando 'ls' en la terminal. Y luego reproduzca la "identidad" del comando anterior con su propio archivo. Vaya al terminal sourcetree y: cd ~luego cd .ssh, lsluego (copie el nombre sin la extensión .pub) y luego (ejecute este comando)ssh-add ~/.ssh/(copied name)
Tejas

21

Me enfrenté al mismo problema con GitHub . ¡Aquí se explica cómo resolverlo!

  1. Genere una clave SSH en su computadora como se describe aquí: Generando claves SSH .
  2. Inicie sesión en su cuenta de GitHub : Inicie sesión en GitHub .
  3. En su cuenta, agregue la clave SSH recién generada: las claves SSH de mi cuenta .
  4. Intenta nuevamente con git cloneel proyecto.

Funcionó como encanto !!
Prakhar

1
Ahora he usado esta respuesta en 3 nuevos sistemas operativos en los últimos 5 años y siempre ha funcionado perfectamente.
kotoole

Aparentemente, High Sierra requiere que el usuario registre la clave en el archivo .ssh / config. El Capitán de alguna manera se las arregló sin él.
dsomnus

14

He tenido este problema en una Mac: mientras configuré SSH correctamente para acceder a mi repositorio Git, después de reiniciar (y en algún momento la Mac estaba en un punto muerto), se eliminaron todas mis credenciales. Aparentemente, por alguna razón, la clave de publicación se estableció en 644, lo que provocó que se eliminara del llavero. Para leer:

  • chmod 600 la clave pública
  • ssh-add ~/.ssh/[your private key]- Esto debería mostrar que se ha agregado la identidad. El archivo de clave que desea es el que no tiene la extensión .pub.
  • ssh-add -l debería mostrarte una identidad recién agregada

editar: aparentemente MacOS tiene tendencia a eliminar claves: después de descargar la actualización de High Sierra (pero aún no la he instalado) mi clave ha sido eliminada y tuve que agregarla nuevamente a través de ssh-add


2
Esta solución sigue siendo precisa después de actualizar macOS High Sierra a la Versión 10.13.1. Específicamente, Sourcetree fue la aplicación que surgió el problema cuando intenté enviar un commit a un repositorio remoto. Los pasos anteriores me solucionaron el problema.
Paul Bonneville el

Tuve este problema en 10.13.4 y esta solución funcionó para mí.
Andrew Ebling

11

También enfrenté el mismo problema. Hice lo siguiente y funcionó para mí:

  1. Genere claves desde el cliente GIT GUI en Windows. Copie esta clave en el portapapeles.
  2. Abra su cuenta en el bitBucket/sitio web de git y agregue esta clave a su perfil. De esta manera, el servidor sabe que usted es un usuario legítimo que accede desde un sistema legítimo.
  3. Eso es. Todos los comandos push funcionaron para mí en adelante.

Esto me ayudó a ver que había generado mi RSA sin ejecutar Git Bash como Administrador, que colocó mi clave RSA en la unidad "h": oops:
tylerlindell

7

Para mí, cuando quería clonar desde mi repositorio, recibí el mismo mensaje antes de "Permiso denegado (clave pública) fatal: no se pudo leer desde el repositorio remoto". La solución para mi caso es no usar sudo antes del clon. Eso es todo.


Muchas gracias @mustapha, realmente me ahorras tiempo.
vinay kumar

7

Github (o Bitbucket) no puede encontrar su clave ssh en su servidor.

Simplemente agregue su clave en la configuración de su cuenta.


6

Si genera una nueva clave ssh pública y la inserta en bitbucket o github y

no ayudó; intente reiniciar su PC . ¡¡Me ayudó!!


Gracias, esto era lo que necesitaba hacer también.
Steph

Tuve que cerrar la terminal y abrir una nueva para verla funcionando.
rahul

5

Necesita crear una nueva clave ssh ejecutando ssh-keygen -t rsa.


Se elimina la referencia de @Joel Heroku. Gracias
biniam

4

Recibí el error ...

Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

... cuando estaba tratando de hacer contacto desde un indicador de Git Bash a Bitbucket después de que mi computadora portátil muriera por una mala actualización de Windows 10 y volviera a la configuración de fábrica. Había restaurado todos mis archivos ssh desde una copia de seguridad.

La causa del error resultó ser una falta de coincidencia en el nombre de mi cuenta de Windows después de la reconstrucción de la computadora. Aprendí que el archivo de clave pública id_rsa.pubtermina con una cadena fácil de leer que comprende el nombre de mi cuenta de Windows seguido de un @signo y luego el nombre de la computadora.

Cuando configuré originalmente mi computadora, creé el nombre de mi cuenta de Windows, incluida mi inicial del segundo nombre, pero cuando mi computadora se restableció a la configuración de fábrica, nuestro nuevo chico DevOps creó mi nombre de cuenta sin mi inicial del segundo nombre.

Para resolver el problema, simplemente edité mi archivo de clave pública id_rsa.puby eliminé la inicial del segundo nombre al final. Me había quedado con el mismo nombre de computadora, así que estaba bien. Copié el contenido del archivo en el portapapeles de Windows. Luego inicié sesión en Bitbucket, fui a Configuración de Bitbucket debajo de mi avatar y agregué una nueva clave pública donde pegué los nuevos contenidos.

De vuelta en el indicador de Git Bash, confirme que ahora funcionaba ingresando el comando ...

ssh -T git@bitbucket.org

... y recibí un mensaje de que había iniciado sesión.


4

En macOS / Linux (Ubuntu):

1. Para autenticarse, debe agregar su parte pública de su par de claves SSH al bitbucket desde su configuración de usuario: Configuración de usuario -> claves SSH

Encontrará dicha parte pública en su directorio ~ / .ssh, por lo general id_rsa.pub. anote la .pubparte del nombre del archivo para Público. te ayudará a generar uno si aún no tienes uno

Aún no has terminado ...

2. Debe informar a su sistema qué clave usar con qué host remoto, por lo tanto, agregue estas líneas a su archivo ~ / .ssh / config

Host bitbucket.org
 IdentityFile ~/.ssh/PRIVATE_KEY_FILE_NAME

Donde PRIVATE_KEY_FILE_NAMEes el nombre de la parte privada de su par de claves SSH, si no se ha metido con ella, por lo general su nombre por defecto es: id_rsa en este caso, sustituir PRIVATE_KEY_FILE_NAMEanterior con id_rsa(la clave privada no tiene una .pubextensión)


Nota, escribiste mal "Ubuntu" - las ediciones deben tener al menos 6 caracteres, así que no puedo sugerir la edición :)
Misha Nasledov

4

Hilo útil y no traigo muchas novedades a la mesa. El paso que tomé también es parte de la descripción que Maxime señala útilmente, pero algunos pueden pasarlo por alto. La sección es Agregar su clave SSH al agente ssh .

Ya había generado mi clave ssh, pero después de reiniciar no pude clonar uno de mis propios repositorios.

Tuve que iniciar el agente ssh y agregar la clave privada a este agente para poder clonar.

eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa

3

Enfrenté el mismo problema al ejecutar el git clonecomando desde la línea de comandos de Windows. Pero el comando se ejecuta con éxito desde Git Bash .


3

Tuve el problema similar. Cambié las claves ssh y reinicié y probé todas las demás soluciones 'n'. Pero el problema real para mí fue que nuestro protocolo predeterminado de gitlab cambió de ssh a https.

compruebe la url remota con

git remote -v

cambiar la url remota

git remote set-url origin https://URL

Es perfecto, no necesitamos configurar ssh.
Rohit Parte

Tenía que hacer lo mismo. La clave ssh no funcionaba para mí en este caso
Dani

fatal: no se puede acceder a ' bitbucket.org:xxxxxx/xxxxxxxxt ': el número de puerto terminó con 'r'
nosequeweaponer

2

Si todo falla, como fue mi caso, desinstale GIT y vuelva a instalarlo. Por alguna razón esto soluciona.

PD

  1. Traté de generar nuevas claves y actualizar en claves públicas SSH
  2. También intenté eliminar todas las claves e intenté crear una nueva clave.
  3. Y NO, nada malo con mi .gitconfig

2

arreglar para la hubherramienta cli:

  • git config --global hub.protocol https a largo plazo
  • git remote add OOPS https://github.com/isomorphisms/go.git&& git push OOPSpara una reparación inmediata

Este error ocurre con la hubherramienta de línea de comando debido a su valor de hub.protocolgit-config predeterminado incorrecto . Establecen repos para

git://github.com/schacon/ticgit.git

en lugar de lo que github realmente acepta, a saber https://github.com/schacon/ticgit.git.


La lectura LESS=+/"HTTPS instead" man hubexplicará de dónde proviene el comando "arreglo a largo plazo" anterior.


Esto me salvó el día!
Jay Lee

1

Mientras clonaba, tuve un problema similar [mi ERROR: Permiso denegado (clave pública). fatal: no se pudo leer desde el repositorio remoto. Asegúrese de tener los derechos de acceso correctos ... etc.]

- Estaba usando bitBucket / UBUNTU14.04 en mi caso, pero YA tenía un conjunto de archivos clave que había generado previamente Y había cambiado el nombre de los archivos. Simplemente COPIÉ los archivos al formato de nombre id_rsa e id_rsa.pub estándar. Luego volví a ejecutar el comando sin problemas.

OBTW : También podría haber utilizado la solicitud de contraseña utilizando el clon de estilo HTTP.


0

Tuve un problema similar en Linux. Resolví el problema iniciando sesión en el servidor github y creando una clave de implementación. Eso está en la configuración del repositorio. Luego, copié y pegué mi clave pública (que generalmente está en ~ / .ssh / id_rsa.pub, pero su configuración puede ser diferente). Hay una casilla de verificación para dar acceso de escritura a esta clave. Haga clic en él (a menos que esté usando git para implementar solo, en cuyo caso, no haga clic en él).


0

Yo tenía el mismo error. Mi solución fue cerrar sesión e iniciar sesión nuevamente ya que mi agente ssh no estaba sincronizado con la clave ssh remota.

Agregue esto aquí en caso de que alguien haya visto que las otras respuestas no parecen aplicarse a su situación.


0

Estaba enfrentando el mismo problema al configurar ssh para gitlab. Ya tengo ssh para githuby no pude sobrescribir eso. Los pasos que funcionaron para mí son:

  1. Genere SSH con una nueva ruta y agréguelo a la lista ssh ssh-add /path/to/new/id_rsa.
  2. Cree un archivo nombrado configal ~/.ssh/usar. He utilizado vi ~/.ssh/config/.
  3. Agregue esto al archivo recién creado

# GitLab.com server Host gitlab.com RSAAuthentication yes IdentityFile /path/to/new/id_rsa

  1. Guardar y Salir.

Después de eso, reinicie la terminal e intente presionar, debería funcionar


0

Si desea clonar proyectos de código abierto para enviar una solicitud de extracción:

Quería clonar un proyecto de código abierto para poder enviar algunas solicitudes de extracción. El problema era que no tenía permisos del propietario del proyecto. No importa, ya que mi intención era presentar un RP, aquí hay una alternativa viable:

Mi solución:

  1. Repositorio tenedor

Horquilla Repo

  1. Luego clone desde su repositorio bifurcado. Clon de Repo bifurcado

  2. Trabaje en sus funciones y luego envíe una solicitud de extracción.



0

solución: en el servidor que está intentando clonar o empujar desde cat ~ / .ssh / id_rsa.pub Vaya a GitHub, configuración, SSH y GPG Keys , Nueva clave SSH pegar clave.


0

Veo que este mensaje de error tiene muchas razones diferentes. Tuve el mismo error al intentar configurar localmente otro repositorio junto con uno que ya funcionaba completamente con ssh, etc. y conectarlo al mismo servidor, pero a otro repositorio. No se encontraron respuestas aquí, pero lo descubrí. Entonces lo publico. Con suerte ayuda a alguien.

git remote add origin git@git.ourserver.com:teamalpha/repositorytwo.git

0

si ninguna de estas respuestas ayuda y

  1. estás usando Windows
  2. genera su clave con Putty o ha instalado Putty en su PC
  3. Usted genera su clave con CMD o PowerShell

Tratar

  1. borra tus llaves
  2. busque en Windows Git Bash, luego genere una nueva clave con la línea de comando Git Bash
  3. agregar clave pública a su repositorio en línea

Luego, encontrará después de git clone y escriba yes para confirmar, debería comenzar a clonarse


-2

Puede ser estúpido pero nos pasó a nosotros:

Si está utilizando Bitbucket y Sourcetree y solo copia y pega la URL de clonación en el nuevo diálogo de repositorio, mostrará el mismo error al tirar o empujar.

Asegúrate de eliminar el material 'git clone' antes de la URL.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.