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.
Debe generar una clave SSH (si no tiene una) y asociar la clave pública con su cuenta de Github. Ver help.github.com/articles/generating-ssh-keys .
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 recibiendo este error. Resulta que acababa de actualizar OSX a Sierra y mi clave anterior ya no estaba registrada.
Al principio pensé que era "Actualizar a macOS Sierra romperá tus claves SSH y te bloqueará de tus propios servidores"
Pero la había eludido. Resulta que solo tuve que volver a registrar mi clave existente:
ssh-add -K
Y escriba la contraseña ... ¡listo!
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í?
Ejecuté este comando para decirle a mi git que use https en lugar de ssh:
git config --global url."https://".insteadOf git://
Remueva cualquier control remoto si hay alguno
git remote rm origin
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.
- Descargar git
Instalarlo
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.0ssh -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.