Pregunta Mensaje de error de GitHub - Permiso denegado (publickey)


¿Alguien ha visto este error y sabe qué hacer?

Estoy usando la terminal, estoy en la raíz, el repositorio de GitHub existe y no sé qué hacer ahora.

> git push -u origin master
Permission denied (publickey).
fatal: Could not read from remote repository.

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

571
2017-10-17 18:11


origen


Respuestas:


GitHub no puede autenticarte. Entonces, o no está configurado con una clave SSH, porque no tiene configurar uno en su máquina, o su clave no está asociada con su cuenta de GitHub.

También puede usar la URL HTTPS en lugar de la URL SSH / git para evitar tener que lidiar con las claves SSH. Esto es El método recomendado por GitHub.

Además, GitHub tiene una página de ayuda específicamente para ese mensaje de errory explica con más detalle todo lo que puedes verificar.


554
2017-10-17 18:15



Debe generar una clave SSH (si no tiene una) y asociar la clave pública con su cuenta de Github. Ver La propia documentación de Github.


54
2017-10-17 18:13



¿Creaste un config archivo en su ~ / .ssh directorio? Debería tener contenidos como estos:

Host github.com 
 IdentityFile ~/.ssh/github_rsa

Suponiendo que haya creado una clave ssh llamada github_rsa

y lo subí a GitHub ...

NOTA: debe seguir esta forma de configuración explícita si tiene más de 1 clave (2 y más) en su directorio ~ / .ssh /. Si no especifica la clave de esta manera, se toma la primera clave en orden y se usa para autenticación github, por lo que depende del nombre del archivo de clave.


50
2018-02-21 15:43



Esto me pasó a mí. Por alguna razón mi origen se echó a perder sin que me diera cuenta:

Comprueba si tu configuración sigue siendo correcta

git remote -v

la URL debe ser algo así como ssh: //git@github.com/YourDirectory/YourProject.git; si no ves git@github.com, usa

git remote set-url origin git://github.com/YourDirectory/YourProject.git

para arreglarlo O puede usar la aplicación github para verificar y configurar la URL del Repositorio Remoto Principal en el panel de configuraciones de su repositorio particular.


43
2018-05-23 03:30



Conozco este problema. Después de agregar la clave ssh, agregue su clave ssh al agente ssh también (de documentos oficiales https://help.github.com/articles/generating-ssh-keys/)

ssh-agent -s
ssh-add ~/.ssh/id_rsa

Después de eso, todo funciona bien, git puede ver la clave adecuada, antes no podía.


36
2018-06-12 14:51



Primero, necesitamos verificar las claves ssh existentes en su computadora. Abre la Terminal y ejecuta:

ls -al ~/.ssh

#or

cd ~/.ssh
ls

y eso incluirá una lista de los archivos en su directorio .ssh

Y finalmente dependiendo de lo que veas (en mi caso fue):

 github_rsa  github_rsa.pub known_hosts

Simplemente intente configurar su RSA y con suerte eso resolverá sus problemas de "origen de git push"

$ ssh-keygen -lf ~/.ssh/github_rsa.pub

NOTA: Los certificados RSA tienen pares de claves, por lo que tendrá un certificado público y privado, privado no será accesible para usted, ya que pertenece a github (en este caso), pero el público es el que puede estar perdido cuando ocurre este error (en al menos ese era mi caso, mi cuenta github o repo se dañó de alguna manera y tuve que "enlazar" la clave pública, previamente generada)


19
2017-08-01 23:23



Suponiendo que está conectando GitHub a través de SSH, puede ejecutar debajo del comando para confirmar esto.

$git config --get remote.origin.url

Si obtiene un resultado tiene el siguiente formato git@github.com: xxx / xxx.github.com.git, entonces debe hacer lo siguiente.

Genere una clave SSH (o use una existente). si tiene uno, solo necesita agregar su clave al agente de ssh (paso 2) y a su cuenta de GitHub (paso 3).

a continuación son para aquellos que no tienen la clave SSH.

Paso 1 Generando par de clave rsa pública / privada.

$ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Se le pedirá que confirme dónde guardar la clave SSH y qué frase de contraseña desea usar.

Paso 2 Agregue su clave a ssh-agent

  • Asegúrese de que ssh-agent esté habilitado

    $eval "$(ssh-agent -s)"

  • Agregue su clave SSH al agente ssh:

    $ssh-add ~/.ssh/id_rsa

Paso 3 Agregue su clave SSH a su cuenta

$sudo apt-get install xclip

$xclip -sel clip < ~/.ssh/id_rsa.pub

A continuación, agregue la clave copiada a GitHub

Ir Configuraciones->Llaves SSH(Barra lateral de ajustes personales) ->Agregar clave SSH-> completar formulario (la clave está en su portapapeles, solo use ctrl + v) ->Agregar clave

Después de seguir los pasos anteriores, debe resolver el problema del permiso.

Link de referencia: Generando claves SSH.


16
2018-01-03 14:34



Estaba recibiendo este error. Resulta que acababa de actualizar OSX a Sierra y mi clave anterior ya no estaba registrada.

Al principio pensé que era "La actualización a macOS Sierra romperá tus claves SSH y te desconectará de tus propios servidores"

Pero yo había esquivado ese. Resulta que solo tuve que volver a registrar mi clave existente:

ssh-add -K

Y escriba la frase de contraseña ... ¡hecho!


11
2018-02-10 23:27



Asegurarse ssh-add -l muestra una huella digital de una clave SSH que está presente en la lista de claves SSH en su cuenta de Github.

Si la salida está vacía, pero sabe que tiene una clave SSH privada que funciona con su cuenta github, ejecute ssh-add en esta clave (encontrada en ~/.ssh. Se llama id_rsa de forma predeterminada, por lo que es probable que ejecute ssh-add id_rsa)

De lo contrario, sigue estas instrucciones para generar un par de claves SSH.


7
2018-06-10 21:07



En caso de que no esté accediendo a su propio repositorio, o clonando dentro de un repositorio clonado (usando algunos comandos "git submodule ..."):

En el directorio de inicio de su repositorio:

$ ls -a

1. Abra ".gitmodules", y encontrarás algo como esto:

[submodule "XXX"]
    path = XXX
    url = git@github.com:YYY/XXX.git

Cambiar la última línea para ser el HTTPS del repositorio que necesitas extraer:

[submodule "XXX"]
    path = XXX
    https://github.com/YYY/XXX.git

Guarde ".gitmodules"y correr el comando para submódulos y ".git" se actualizará.

2. Abre ".git", ve al archivo "config" y encontrarás algo como esto:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = https://github.com/YYY/XXX.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[submodule "XXX"]
    url = git@github.com:YYY/XXX.git

Cambiar la última línea para ser el HTTPS del repositorio que necesitas extraer:

    url = https://github.com/YYY/XXX.git

Entonces, en este caso, el problema principal es simplemente con la url. HTTPS de cualquier repositorio se puede encontrar ahora en la parte superior de la página del repositorio.


7
2018-01-26 15:19



Estaba usando github anteriormente para uno de mis proyectos de php. Mientras usaba github, estaba usando ssh en lugar de https. tuve mi configuración de la máquina así y cada vez que solía confirmar y presionar el código, me pedía la contraseña de mi clave rsa.

Después de algunos días, dejé de trabajar en el proyecto php y olvidé mi contraseña. Recientemente, comencé a trabajar en un proyecto de Java y me mudé a bitbucket. Desde entonces, había olvidado la contraseña y existe no hay forma de recuperarlo Supongo que decidí usar el protocolo https (recomendado) para el nuevo proyecto y recibí el mismo error en la pregunta.

¿Cómo lo resolví?

  1. Se ejecutó este comando para decirle a mi git que use https en lugar de ssh:

    git config --global url."https://".insteadOf git://
    
  2. Retire cualquier control remoto si hay

    git remote rm origin
    
  3. Rehacer todo desde git init a git push ¡y funciona!

PD: También desinstalé ssh de mi máquina durante el proceso de depuración pensando que, eliminarlo solucionará el problema. ¡¡Sí, lo sé!! :)


6
2018-01-01 06:23