the publickey permission mac identities has digitalocean git github

mac - permission denied(publickey). digitalocean



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

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

Estoy usando el 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.


¿Creó un archivo de configuración en su directorio ~ / .ssh? Debería tener contenidos como estos:

Host github.com IdentityFile ~/.ssh/github_rsa

Suponiendo que creó 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 tecla (2 y más) en su directorio ~ / .ssh /. Si no especifica la clave de esta manera, entonces se toma la primera clave en orden y se usa para la autenticación de github, por lo que depende del nombre del archivo de la clave.


Asegúrese de que ssh-add -l muestre una huella dactilar 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 (que se encuentra en ~/.ssh . Se llama id_rsa de forma predeterminada, por lo que es probable que ejecute ssh-add id_rsa ).

De lo contrario, siga help.github.com/articles/generating-ssh-keys para generar un par de claves SSH.


Conozco este problema. Después de agregar la clave ssh, agregue su clave ssh al agente ssh también (de los 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 de que no se pueda.


Creo que tengo la mejor respuesta para usted, sus aplicaciones git leen su id_rsa.pub en el directorio de usuario root

/home/root/.ssh/id_rsa.pub

Es por eso que su clave en /home/your_username/.ssh/id_rsa.pub no puede ser leída por git. Así que necesitas crear la clave en /home/root/.ssh/

$ sudo su $ ssh-keygen $ cd ~/.ssh $ cat id_rsa.pub

Luego copia la clave en tu cuenta de github. Ha funcionado para mí. Puedes probarlo.



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á algo como esto:

[submodule "XXX"] path = XXX url = [email protected]:YYY/XXX.git

Cambie la última línea para que sea el HTTPS del repositorio que necesita extraer:

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

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

2. Abra ".git", vaya al archivo "config", y encontrará 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 = [email protected]:YYY/XXX.git

Cambie la última línea para que sea el HTTPS del repositorio que necesita 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.


Estaba recibiendo el mismo error durante ''git push''. En el lado del cliente tuve dos orígenes y maestro. Quité uno, luego funcionó bien.



Estaba teniendo un problema similar a @Batman. Sin embargo, debido a que estaba ejecutando esto bajo / usr / local / src / projectname, ejecutar sin sudo no era una opción.

Simplemente agregue la marca -E para preservar el entorno (su ~ / .ssh / ruta).

$ sudo -E git clone git@your_repo

De hombre sudo:

-E, --preserve-env Indica a la política de seguridad que el usuario desea preservar sus variables de entorno existentes. La política de seguridad puede devolver un error si el usuario no tiene permiso para preservar el medio ambiente.


Estaba usando github anteriormente para uno de mis proyectos php. Mientras utilizaba github, estaba usando ssh en lugar de https. Tenía mi https://help.github.com/articles/generating-ssh-keys/ esa manera 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 rsa. Recientemente, comencé a trabajar en un proyecto java y me mudé a bitbucket. Desde entonces, había olvidado la contraseña y no hay forma de recuperarla, supongo, decidí usar el protocolo https (recomendado) para el nuevo proyecto y obtuve el mismo error que en la pregunta.

¿Cómo lo resolví?

  1. Ejecuté este comando para decirle a mi git que use https en lugar de ssh:

    git config --global url."https://".insteadOf git://

  2. Remueva cualquier control remoto si hay alguno

    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é!! :)


Esto me paso a mi Por alguna razón, mi origen se desordenó sin darme cuenta:

Compruebe si su configuración sigue siendo correcta

git remote -v

la url debe ser algo como ssh: //[email protected]/YourDirectory/YourProject.git; Si no ve [email protected], use

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

para hacerlo bien O podría usar la aplicación github para verificar y configurar la URL del repositorio remoto principal en el panel de configuración de su repositorio particular.


GitHub no puede autenticarte. Entonces, o bien no está configurado con una clave SSH, porque no ha help.github.com/articles/generating-ssh-keys , o su clave no está asociada con su cuenta de GitHub.

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

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


Me gustaría añadir algunos de mis hallazgos:

Si está utilizando GitBash , asegúrese de que la clave SSH esté almacenada en ~/.ssh/id_rsa .

Por defecto, GitBash busca ~/.ssh/id_rsa como ruta predeterminada para la clave SSH.

Incluso el nombre del archivo id_rsa importa. Si guarda su clave SSH en otro nombre de archivo o ruta, lanzará el error de Permission Denied(publickey) .


Para mi intenté esto -

eval "$(ssh-agent -s)"

entonces corro

ssh-add ~/.ssh/path-to-the-keyfile

y para generar la llave puedes correr

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Esto generará el par de claves (públicas y privadas).

puede almacenar esta clave en github para más información lea esto Agregar una nueva clave SSH a su cuenta de GitHub

Espero que ayude a otros :)


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

ls -al ~/.ssh #or cd ~/.ssh ls

y que enumera 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 solucionará sus problemas de "origen en Git Push"

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

NOTA: los certificados RSA están emparejados con claves, por lo que tendrá un certificado privado y público, no estará accesible para usted ya que pertenece a github (en este caso), pero el público es el que puede faltar cuando ocurra este error (Al menos ese fue mi caso, mi cuenta o repositorio de github se desordenó de alguna manera y tuve que "vincular" la clave pública, generada previamente)


Puedes usar la URL de Https para iniciar sesión

Supongo que está intentando iniciar sesión con ssh url cuando dice git push si es solo para pedir una contraseña. Considere que se está conectando a través de ssh.better.


Si está utilizando la interfaz de usuario de GitHub para Mac, verifique las preferencias para asegurarse de que haya iniciado sesión.


Si ya ha creado una clave SSH y sigue recibiendo el error, es porque debe otorgar al usuario permisos para leer y escribir en la carpeta en la que está clonando. Para hacer esto, sudo chmod 777 <your_folder_name_here>" . Por supuesto, esto es después de que haya generado una clave SSH y todavía reciba este error. Espero que esto ayude a los futuros usuarios.

Editar

Para agregar a este uso, admin en Windows si estás usando el git bash


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

$git config --get remote.origin.url

Si obtiene un resultado con el siguiente formato [email protected]: xxx / xxx.github.com.git, debe hacer lo siguiente.

Genera una clave SSH (o usa una existente). si tenía uno, solo necesita agregar su clave al ssh-agent (paso 2) y a su cuenta de GitHub (paso 3).

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

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

$ssh-keygen -t rsa -b 4096 -C "[email protected]"

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

Paso 2 Añade tu clave al ssh-agent

  • Asegúrate 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

Luego agrega la clave copiada a GitHub

Vaya a Configuración -> Teclas SSH (barra lateral de configuración personal) -> Agregar tecla SSH -> completar formulario (la tecla está en su portapapeles, solo use ctrl + v) -> Agregar tecla

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

Enlace de referencia: https://help.github.com/articles/generating-ssh-keys/ .


Tal vez tu ssh-agent no esté habilitado. Puedes probarlo.

  1. Descargar git

http://git-scm.com/

  1. Instalarlo

  2. Habilitar ssh-agent

C: / Archivos de programa / Git / cmd

start-ssh-agent


También en Ubuntu, a pesar de que ya había una clave SSH ingresada en la configuración en BitBucket, tengo este problema. La razón fue que estaba intentando lo siguiente:

sudo git push origin master

No estoy seguro de por qué, pero se resolvió utilizando

git push origin master

No se utiliza sudo.


Tuve 2 archivos de identidad Github cargados en el agente ssh. Mi clave personal y otra para un proyecto de cliente.

Quité la llave que estaba causando confusión:

ssh-add -d id_rsa_github_somekey


Tuve el mismo problema recientemente. Esto puede ayudar si necesita una solución de inmediato, pero esto debe hacerse cada vez que reinicie su sistema

Desde la terminal, ejecute: ssh-add ~/.ssh/id_rsa

Ingrese su contraseña del sistema y que debería funcionar.


Una vez que el escenario en el que esto ocurrirá es cuando siga las instrucciones de GitHub después de crear su repositorio. Git te indicará que agregues tu control remoto con algo como esto.

git remote add origin [email protected]:<user>/<project>.git

Reemplace lo que está en <> con valores relacionados con su cuenta.

La solución es eliminar el sufijo .git . Agregue el control remoto de la siguiente manera:

git remote add origin [email protected]:<user>/<project>


Usar Https está bien, ejecute git config --global credential.helper wincred para crear un asistente de credenciales Github que almacene sus credenciales para usted. Si esto no funciona, entonces necesita editar su archivo de config en su directorio .git y actualizar el origen a la URL https.

Vea este enlace para los documentos github.


Use la URL para esta página cuando agregue GitHub como control remoto. no causará ningún error y empuje el código


Vaya al panel de control de su cuenta de GitHub, busque el repositorio de su proyecto, haga clic en la pestaña Configuración : en Implementar claves tendrá que agregar su clave SSH. Abra la Terminal y escriba:

cat ~/.ssh/id_rsa.pub | pbcopy

Esto copiará la clave de su archivo id_rsa.pub. Así que vuelve al panel de GitHub, pégalo, haz clic en Agregar clave y listo.

La misma solución se aplica a las cuentas de Bitbucket.


esto funcionó para mí:

1- Eliminar todos los orígenes.

git remote rm origin

(consulte https://www.kernel.org/pub/software/scm/git/docs/git-remote.html )

* remoto: "Administrar el conjunto de repositorios (" remotos ") cuyas sucursales rastrea.

* rm: "Elimine el control remoto nombrado. Se eliminan todas las ramas de seguimiento remoto y los ajustes de configuración del control remoto".

2- Comprobar que todo ha sido eliminado:

git remote -v

3- añadir nuevo maestro de origen

git remote add origin [email protected]:YOUR-GIT/YOUR-REPO.git

¡eso es todo amigos!


Otra solución :

cree las claves SSH, escriba ssh-keygen -t rsa -C "[email protected]" . Esto creará los archivos id_rsa e id_rsa.pub.

Agregue el id_rsa a la lista ssh en la computadora local: ssh-add ~/.ssh/id_rsa.

Después de generar las claves obtén la clave usando:

cat ~/.ssh/id_rsa.pub

obtendrás algo como

cat ~/.ssh/id_rsa.pub ssh-rsa AAAB3NzaC1yc2EAAAADAQABAAACAQCvMzmFEUPvaA1AFEBH6zGIF3N6pVE2SJv9V1MHgEwk4C7xovdk7Lr4LDoqEcqxgeJftwWQWWVrWWf7q9qCdHTAanH2Q5vx5nZjLB+B7saksehVOPWDR/MOSpVcr5bwIjf8dc8u5S8h24uBlguGkX+4lFJ+zwhiuwJlhykMvs5py1gD2hy+hvOs1Y17JPWhVVesGV3tlmtbfVolEiv9KShgkk3Hq56fyl+QmPzX1jya4TIC3k55FTzwRWBd+IpblbrGlrIBS6hvpHQpgUs47nSHLEHTn0Xmn6Q== [email protected]

copie esta clave (valor) y vaya a github.com y bajo la configuración (ssh y pgp key) agregue su clave pública.


tl; dr

en ~/.ssh/config put

PubkeyAcceptedKeyTypes=+ssh-dss

Escenario Si está utilizando una versión de openSSH> 7, como en una barra táctil de MacBook Pro, es ssh -V
OpenSSH_7.4p1, LibreSSL 2.5.0
ssh -V
OpenSSH_7.4p1, LibreSSL 2.5.0

También tenías una Mac más antigua que originalmente tenía tu clave que pusiste en Github, es posible que esté usando una clave id_dsa. OpenSSH v7 no incluye de forma predeterminada el uso de estas claves DSA (que incluyen este ssh-dss ), pero aún puede volver a agregarlo poniendo el siguiente código en su ~/.ssh/config

PubkeyAcceptedKeyTypes=+ssh-dss

Fuente que funcionó para mí es este boletín de Gentoo.

Ahora puede al menos usar GitHub y luego fijar sus claves a RSA.