GitHub: Permiso denegado (clave pública). fatal: el extremo remoto colgó inesperadamente

197

He seguido estas instrucciones a continuación para cargar un proyecto.

Configuración global:

 Download and install Git
  git config --global user.name "Your Name"
  git config --global user.email [email protected]
  Add your public key


Next steps:

  mkdir tirengarfio
  cd tirengarfio
  git init
  touch README
  git add README
  git commit -m 'first commit'
  git remote add origin [email protected]:tirenga/tirenga.git
  git push origin master

Pero me sale este error:

Permiso denegado (clave pública). fatal: el extremo remoto colgó inesperadamente

ziiweb
fuente

Respuestas:

24

Para mí, el problema era la ejecución de clon a través de sudo.

Si clonas en un directorio donde tienes permiso de usuario (/ home / user / git) funcionará bien.

(Explicación: ejecutar un comando como superusuario no funcionará con la misma clave pública que ejecutar un comando como usuario. Por lo tanto, Github rechazó la conexión).

Esta solución requiere una clave SSH ya configurada: https://help.github.com/articles/generating-ssh-keys

Smundo
fuente
1
esta solución parece muy similar a lo que ya ha sido publicado por learner_19
Erik
125

Tuve que agregar mi clave pública a github. https://help.github.com/articles/generating-ssh-keys

ziiweb
fuente
3
En caso de que esté ejecutando una máquina Linux, copiar el contenido del archivo id_rsa.pub puede ser difícil si está utilizando emacs o nano. Intente copiar con un editor de texto (el Bloc de notas, TextEdit o gedit funcionarán bien). Si no tiene ninguno de estos, puede usar vim.
Gokul NK
44
@GokulNK La otra alternativa es usar xclip, como lo recomienda la página.
w4etwetewtwet
77
cat ~/.ssh/id_rsa.pubpodría ser una opción? : p
torr
puede usar pbcopy < ~/.ssh/id_rsa.puben OS X y luego pegarlo ( cmd+v) en la página de github.
user3648895
28

después de crear el par de claves RSA, debe agregarlo a SSH usando:

ssh-add ~/.ssh/id_rsa

o donde sea que haya creado su par de claves rsa.

Sergio Viera
fuente
¡Salvador de la vida! Le diste al clavo. Gracias
Tash Pemhiwa
De acuerdo, es importante verificar primero si ssh-agent se está ejecutando (la documentación de GitHub tiene uno para hacerlo), y si la clave se agrega en su llavero. Sin embargo, hay algo más que vale la pena verificar, ya que puede evitar que la clave se use incluso si está en el llavero de ssh-agent, es el modo de acceso correcto para la clave privada : debería ser 0600 ( chmod 600 ~/.ssh/id_rsabásicamente).
chikamichi
18

Escriba el siguiente comando con su nombre de usuario y nombre de repositorio:

git clone https://github.com/{user name}/{repo name}

en Ubuntu esto funciona perfectamente.

rahul_pratap
fuente
Creo que el protocolo https es necesario para tener una conexión segura, por eso funciona. Git @ github .. NO es seguro para la máquina.
Timo
16

Obtuve una solución después de mucho tiempo en tutoriales.

Seguí el tutorial de github en este enlace -> https://help.github.com/articles/error-permission-denied-publickey y pude conectarme en cada paso. Pero cuando estaba tratando de git push -u origin master obtuve este error:

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

Asegúrese de tener los derechos de acceso correctos

¡Así es como lo he arreglado! Ve al directorio del proyecto usando la Terminal y échale un vistazo

$git remote -v

Obtendrás algo como esto:

origin  ssh://[email protected]/yourGithubUserName/yourRepo.git (fetch)
origin  ssh://[email protected]/yourGithubUserName/yourRepo.git (push)

Si está usando algo diferente a [email protected] , abra el archivo de configuración en el directorio git escribiendo el comando:

vi .git/config

Y configurar la línea

[remote "origin"]

url = ssh://[email protected]/yourGithubUserName/yourRepo.git

fetch = +refs/heads/*:refs/remotes/origin/
rafaeljuzo
fuente
Para mí, en realidad funcionó reemplazando [email protected] con <myusername> @ github.com
Eduard Feicho
El comando "git remote -v" no es uno que haya visto antes, y resultó ser la clave para entender por qué uno de mis repositorios funcionaba, mientras que el otro devolvía "Permiso denegado (clave pública)" cuando Intenté ejecutar "git ls-remote". Muy útil. Gracias.
Kevin
6

En mi caso, tuve que configurar la clave pública para otro usuario, ya que ya tenía una para mi usuario principal. Una vez que cambié de usuario y ejecuté los comandos en el enlace anterior, pude realizar la configuración de mi servidor de prueba sin ningún problema.

Dan Power
fuente
Problema similar: inicié sesión como root (y pasé por alto esto) no como el usuario real que estaba configurado con SSH. No se pudo comprometer a trabajar para nada. ¡Cambiar de nuevo para corregir el problema resuelto por el usuario!
Richard Hollis
1
Falta definitiva de explicación sobre cómo realizar realmente la corrección.
Richard
No debería tener que explicarlo, ¡esto es para ti Richard! Estaba usando mi cuenta no root. Tuve que ejecutar el comando desde la url de ayuda de github ( help.github.com/articles/generating-ssh-keys#platform-linux ) con el prefijo sudo.
Dan Power
5

Tuve este problema, pero ninguna de las soluciones anteriores funcionó. Podía clonar y buscar pero no podía empujar. Eventualmente, descubrí que el problema estaba urlen mi .git/config, debería ser:

[email protected]:<username>/<project>

(no ssh://github.com/<username>/<project>.gito https://github.com/<username>/<project>.git).

Eold
fuente
2
Para una conexión SSH, la git@parte es la magia. Así ssh://[email protected]/username/project.gittambién funciona.
obispo
.git es realmente importante. Esta solución funciona perfecta.
Onur Göker
5

Dado que ninguna de las respuestas aquí funcionó para mí, finalmente rastreé mi problema al conectarme a Bitbucket (o Github, no importa en este caso) con ssh -vT [email protected].

En mi caso, la falla se debió al uso de una clave DSA en lugar de RSA, y aparentemente mi cliente SSH ya no lo permite.

debug1: omitiendo la clave ssh-dss /c/Users/USER/.ssh/id_dsa para no estar en PubkeyAcceptedKeyTypes

La solución fue agregar esto a .ssh / config:

Host *
    PubkeyAcceptedKeyTypes +ssh-dss

Esto agrega elegantemente el tipo de clave ssh-dss a todos los tipos de clave pública aceptados existentes y, una vez hecho esto, git ahora puede ssh en Bitbucket sin problema.

Artem Russakovskii
fuente
Esta fue la solución para mí en una máquina inestable de Debian en diciembre de 2015. Lo restringí a "Host bitbucket.org" ya que ya tenía una entrada para forzar mi selección de identidad.
bitmusher
3

Mi problema fue que estaba tratando de darle a mi clave ssh un NOMBRE ESPECÍFICO cada vez que ingresaba ssh-keygenen mi terminal mac.

Resolví el problema simplemente dejando el nombre que "ssh-keygen" genera = id_rsa. Terminará con 2 claves en su carpeta .ssh en una Mac id_rsa, que es su clave privada, y la id_rsa.pub, que es su clave pública. Luego copié y guardé el código id_rsa.puben la configuración de mi cuenta de GitHub, y eso fue todo. Problema resuelto.

paopao
fuente
Lo mismo para mi. Dejar el nombre vacío solucionó el problema. Gracias.
Berk
Hombre, me hiciste el día! ¡2 semanas con la consola debido a nombres de teclas específicos! ¡Gracias!
eilas
Me alegro de que haya ayudado! @eilas
paopao
La razón por la que esto funciona es porque en la mayoría de los sistemas las claves privadas predeterminadas (~/.ssh/id_rsa , ~/.ssh/id_dsay ~/.ssh/identity) se agregan automáticamente al agente de autenticación SSH.
maffo
2

Agregar clave pública es la solución. Para generar claves ssh: https://help.github.com/articles/generating-ssh-keys tiene instrucciones paso a paso.

Sin embargo, el problema puede persistir si la clave no se genera de la manera correcta. También encontré que este es un enlace útil: https://help.github.com/articles/error-permission-denied-publickey

En mi caso, el problema era que estaba generando la clave ssh sin usar sudo pero cuando usaba comandos git necesitaba usar sudo. Este comentario en el enlace anterior "Si genera claves SSH sin sudo, cuando intente utilizar un comando como sudo git push, no utilizará la clave SSH que generó". me ayudó.

Entonces, la solución fue que tuve que usar sudo con los comandos de generación de claves y los comandos de git. O para otros, cuando no necesitan sudo en ningún lado, no lo use en ninguno de los dos pasos. (generación de claves y comandos git).

alumno_19
fuente
1

Me enfrenté a un problema similar al ejecutar SSH o Git Clone en Windows. Los siguientes hallazgos ayudan a resolver mi problema:

  • Cuando ejecuta "rhc setup" u otros métodos ssh para generar la clave ssh, creará el archivo de clave privada id_rsa en la carpeta .ssh en su carpeta de inicio, el valor predeterminado es C: \ User \ UserID
  • Git para Windows tiene su propia carpeta .ssh en su directorio de instalación. Cuando ejecutas git / ssh, buscará el archivo de clave privada id_rsa en esta carpeta
  • Resolvió el problema copiando id_rsa de la carpeta de inicio .ssh a la carpeta .ssh en el directorio de instalación de git

Además, creo que hay una manera de "decirle" a git que use la carpeta predeterminada .ssh en la carpeta de inicio, pero aún necesito averiguar cómo.

gkl
fuente
1

Para mí, funcionó así:

En GitHub cambié el sshenlace httpsy luego le di los siguientes comandos:

$ git init
$ git remote add origin https:...
$ git add .
$ git commit -m "first commit"
$ git push origin master
Naiguel Developer
fuente
0

Usa ubuntu en la tienda de windows

subsistema de Windows para Linux

, su empuje git funcionará en diferentes cuentas.

MayurKubavat
fuente
0

Si está utilizando una máquina Linux, compruebe,

  • ¿tienes instalado Openssh?
  • si es así, ¿tiene una clave pública existente? De lo contrario, tendrá que generar una.
  • es su clave pública agregada a su cuenta de github.

Generar nuevas claves SSH y agregarlas a mi cuenta de Github resolvió mi problema. Puede consultar esta página para obtener más detalles. GitHelp .

Sparsh Juneja
fuente
0

Puede intentar cambiar su tipo de conexión a rama de ssh a https.

  1. nano project_path/.git/config
  2. Reemplazar [email protected]:username/repository.gitahttps://[email protected]/username/repository_name.git
  3. Guardar archivo ctrl+o

Después de eso puedes probar git pullsin publickey

Maxim Niko
fuente
-1

Una forma rápida de solucionar esto si está utilizando una Mac es cerrar sesión en la aplicación OSX e iniciar sesión nuevamente.

Brandonscript
fuente
-1

Mi problema era que no funcionaba con una frase de contraseña en mi clave privada.

Espero que ayude a alguien.

Lirón
fuente
-3

Probé las soluciones mencionadas pero aún fallé. Encontré la solución que finalmente funcionó para mí aquí : eliminar y volver a agregar el enlace remoto

yjsa
fuente
-4

Tuve el mismo problema en Windows. Cambié de SSH a HTTPS y ejecuté un Git PUSH.

git push -u origin master
Username for 'https://github.com': <Github login email>
Password for <Github login>: xxx

¡Exitoso! espero que esto ayude.

erukumk
fuente
Si bien esto puede ser una solución, no resuelve el problema inicial.
maffo