Git: ¿Cómo resolver el error de Permiso denegado (clave pública) al usar Git?
Estoy en Mac Snow Leopard y acabo de instalarlo git
.
acabo de intentarlo
git clone [email protected]:cakebook.git
pero eso me da este error:
Initialized empty Git repository in `/Users/username/Documents/cakebook/.git/`
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
¿Qué me estoy perdiendo?
También intenté hacerlo ssh-keygen
sin fase de contraseña, pero sigue siendo el mismo error.
Si el usuario no ha generado un par de claves pública/privada ssh establecido antes
Esta información funciona en theChaw pero se puede aplicar a todos los demás repositorios de git que admiten autenticaciones de clave pública SSH. (Consulte [gitolite][1], gitlab o github, por ejemplo).
Primero comience configurando su propio conjunto de pares de claves pública/privada. Esto puede usar DSA o RSA, por lo que básicamente cualquier clave que configure funcionará. En la mayoría de los sistemas puedes usar ssh-keygen.
- Primero querrás ingresar a tu directorio .ssh. Abre la terminal y ejecuta:
cd ~/.ssh && ssh-keygen
- A continuación debes copiar esto a tu portapapeles.
- En OS X ejecute:
cat id_rsa.pub | pbcopy
- En Linux ejecute:
cat id_rsa.pub | xclip
- En Windows (a través de Cygwin/Git Bash) ejecute:
cat id_rsa.pub | clip
- En Windows (Powershell), ejecute:
Get-Content id_rsa.pub | Set-Clipboard
(Gracias a @orion elenzil)- Agregue su clave a su cuenta a través del sitio web.
- Finalmente configura tu .gitconfig.
git config --global user.name "bob"
git config --global user.email bob@...
(no olvide reiniciar su línea de comando para asegurarse de que la configuración esté recargada)Eso es todo, deberías poder clonarlo y pagarlo.
Puede encontrar más información en https://help.github.com/articles/generating-ssh-keys (gracias a @Lee Whitney) [1]: https://github.com/sitaramc/gitolite
-
Si el usuario ha generado un par de claves pública/privada ssh establecido antes
- verifique qué clave ha sido autorizada en la configuración de su cuenta github o gitlab
- determinar qué clave privada correspondiente debe asociarse desde su computadora local
eval $(ssh-agent -s)
- definir dónde se encuentran las llaves
ssh-add ~/.ssh/id_rsa
Se puede realizar una solución de problemas más exhaustiva e incluso una reparación automática con:
ssh -vT [email protected]
Alternativamente, según los comentarios a continuación, podríamos emitir:
ssh -vT [email protected]
o sustituya gitlab/github por cualquier instancia de Git que esté ejecutando su organización.
Fuente: https://help.github.com/articles/error-permission-denied-publickey/
Este error puede ocurrir cuando accede a la URL SSH (lectura/escritura) en lugar de la URL de solo lectura de Git pero no tiene acceso de escritura a ese repositorio.
A veces solo desea clonar su propio repositorio, por ejemplo, implementarlo en un servidor. En este caso, en realidad sólo necesita acceso de SÓLO LECTURA. Pero como ese es su propio repositorio, GitHub puede mostrar la URL SSH si así lo prefiere. En esta situación, si la clave pública de su host remoto no está en sus claves SSH de GitHub, se le negará el acceso, lo cual se espera que suceda .
Un caso equivalente es cuando intentas clonar el repositorio de otra persona al que no tienes acceso de escritura con una URL SSH.
En una palabra, si su intención es clonar solo un repositorio, use la URL HTTPS ( https://github.com/{user_name}/{project_name}.git
) en lugar de la URL SSH ( [email protected]:{user_name}/{project_name}.git
), lo que evita la validación de clave pública (innecesaria).
Actualización: GitHub muestra HTTPS como protocolo predeterminado ahora y esta medida probablemente pueda reducir el posible uso indebido de las URL SSH.