¿Alguien ha visto este error y sabe qué hacer?
Estoy usando la terminal, estoy en la raíz, existe el repositorio de GitHub 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.
Respuestas:
GitHub no puede autenticarte. Entonces, o no está configurado con una clave SSH, porque no ha configurado una 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. Este es el método recomendado de 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.
fuente
ssh -vT [email protected]
desde la página de ayuda de Github para ayudar a depurar qué clave está usando su repositorio. Le sugiero que lo agregue en su respuesta.ssh -vT [email protected]
proporciona mucha información sobre por qué no funciona.¿ Creó un archivo de configuración en su directorio ~ / .ssh? Debe tener contenidos como estos:
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 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 la autenticación de github, por lo que depende del nombre del archivo de la clave.
fuente
ssh -T [email protected]
responda correctamente, mientras quegit push -u origin master
da el mismo error que en la pregunta. ¿Por qué puedo conectarme a él correctamente pero no puedo presionarlo o buscarlo?Sé sobre este problema. Después de agregar la clave ssh, agregue su clave ssh al agente ssh también (de los documentos oficiales )
Después de que todo funcione bien, git puede ver la clave adecuada, antes no podía.
fuente
ssh-agent -s
ssh-add ~/.ssh/github_rsa
Debe generar una clave SSH (si no tiene una) y asociar la clave pública con su cuenta de Github. Consulte la documentación de Github .
fuente
Esto me paso a mi. Por alguna razón, mi origen se estropeó sin que me diera cuenta:
Compruebe si su configuración sigue siendo correcta
la url debe ser algo así como ssh: //[email protected]/YourDirectory/YourProject.git; si no ve [email protected], use
para arreglarlo O puede usar la aplicación github para verificar y establecer la URL del repositorio remoto primario en el panel de configuración de su repositorio particular.
fuente
Suponiendo que está conectando GitHub a través de SSH, puede ejecutar el siguiente comando para confirmar esto.
Si obtiene un resultado tiene el siguiente formato [email protected]: xxx / xxx.github.com.git, entonces debe hacer lo siguiente.
Genere una clave SSH (o use una existente). si tenía uno, solo necesita agregar su clave al agente ssh (paso 2) y a su cuenta de GitHub (paso 3).
a continuación son para aquellos que no tienen clave SSH.
Paso 1 Generar pares de claves rsa públicas / privadas.
Se le pedirá que confirme dónde guardar la clave SSH y qué frase de contraseña desea usar.
Paso 2 Agregue su clave al agente ssh
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
Luego agregue la clave copiada a GitHub
Vaya a Configuración -> Teclas SSH (barra lateral de configuración personal) -> Agregar clave SSH -> complete el 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.
Enlace de referencia: Generación de claves SSH .
fuente
cat ~/.ssh/id_rsa.pub
Primero, necesitamos verificar las claves ssh existentes en su computadora. Abre la Terminal y ejecuta:
y eso listará los archivos en su directorio .ssh
Y finalmente, dependiendo de lo que veas (en mi caso fue):
Solo intenta configurar tu RSA y con suerte eso resolverá tus problemas de "git push origin"
$ ssh-keygen -lf ~/.ssh/github_rsa.pub
NOTA: los certificados RSA están emparejados con claves, por lo que tendrá un certificado privado y uno público, privado no será accesible para usted ya que pertenece a github (en este caso), pero el público es el que puede faltar cuando ocurre este error (al menos ese fue mi caso, mi cuenta de github o repo se estropeó de alguna manera y tuve que "vincular" la clave pública, previamente generada)
fuente
SHA
salida a github desde este comando?Estaba recibiendo este error. Resulta que acababa de actualizar OSX a Sierra y mi vieja clave ya no estaba registrada.
Al principio pensé que era "Actualizar a macOS Sierra romperá sus claves SSH y lo bloqueará de sus propios servidores"
Pero había eludido ese. Resulta que solo tuve que volver a registrar mi clave existente:
ssh-add -K
Y escriba la frase de contraseña ... ¡listo!
fuente
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 id_rsa a la lista ssh en la computadora local:
ssh-add ~/.ssh/id_rsa.
Después de generar las claves, obtenga la clave pública utilizando:
obtendrás algo como:
copie esta clave (valor) y vaya a github.com y en la configuración (clave ssh y pgp) agregue su clave pública.
fuente
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:
1. Abra ".gitmodules" y encontrará algo como esto:
Cambie la última línea para que sea el HTTPS del repositorio que necesita extraer:
Guarde ".gitmodules" y ejecute el comando para submódulos, y ".git" se actualizará.
2. Abra ".git", vaya al archivo "config" y encontrará algo como esto:
Cambie la última línea para que sea el HTTPS del repositorio que necesita extraer:
Entonces, en este caso, el problema principal es simplemente con la url. El HTTPS de cualquier repositorio se puede encontrar ahora en la parte superior de la página del repositorio.
fuente
esto funcionó para mí:
1- eliminar todos los orígenes
(cf. https://www.kernel.org/pub/software/scm/git/docs/git-remote.html )
* remoto: "Administre el conjunto de repositorios (" controles remotos ") cuyas ramas rastrea.
* rm: "Eliminar el nombre remoto. Se eliminan todas las ramas de seguimiento remoto y los ajustes de configuración para el control remoto".
2- comprobar que todo ha sido eliminado:
3- agregar nuevo maestro de origen
¡eso es todo amigos!
fuente
Asegúrese de que
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 de github, ejecute
ssh-add
esta clave (que se encuentra en~/.ssh
. Se llamaid_rsa
de manera predeterminada, por lo que probablemente la ejecutarássh-add id_rsa
).De lo contrario, siga estas instrucciones para generar un par de claves SSH.
fuente
Estaba usando github anteriormente para uno de mi proyecto php. Mientras usaba github, estaba usando ssh en lugar de https. Tenía mi máquina configurada así y cada vez que solía comprometer y empujar el código, me pedía mi contraseña de 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 de Java y me mudé a Bitbucket. Como olvidé la contraseña y no hay forma de recuperarla, supongo que decidí usar el protocolo https (recomendado) para el nuevo proyecto y obtuve el mismo error en la pregunta.
¿Cómo lo resolví?
Ejecuté este comando para decirle a mi git que use https en lugar de ssh:
Retire cualquier control remoto si alguno
¡Rehaga todo, desde git init hasta 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é!! :)
fuente
Problema resuelto si cambia el acceso ssh al acceso https al repositorio remoto:
fuente
Creo que tengo la mejor respuesta para usted, sus aplicaciones git leen su id_rsa.pub en el directorio de usuario raíz
Es por eso que git no puede leer su clave en /home/your_username/.ssh/id_rsa.pub. Por lo tanto, debe crear la clave en /home/root/.ssh/
Luego copie la clave en su cuenta de github. Me ha funcionado. Puedes probarlo.
fuente
Si ya ha creado una clave SSH y todavía recibe el error, es porque debe otorgarle 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 haber generado una clave SSH y aún está recibiendo este error. Espero que esto ayude a los futuros usuarios.Editar
Para agregar a esto, use el administrador en Windows si está usando el git bash
fuente
sudo chown -R $USER:$USER <your_folder_name_here>
Tuve el mismo problema recientemente. Esto podría ayudar si necesita una solución inmediata, pero esto debe hacerse cada vez que reinicie su sistema
Desde la terminal, ejecute:
ssh-add ~/.ssh/id_rsa
Ingrese la contraseña de su sistema y eso debería funcionar.
fuente
Me gustaría agregar algunos de mis hallazgos:
Si está utilizando
GitBash
, asegúrese de que la clave SSH esté almacenada~/.ssh/id_rsa
.Por defecto
GitBash
busca~/.ssh/id_rsa
como ruta predeterminada la clave SSH.Incluso el nombre del archivo
id_rsa
importa. Si guarda su clave SSH en otro nombre de archivo o ruta, arrojará elPermission Denied(publickey)
error.fuente
OK, hay pocas soluciones para esta, algunas de ellas ya podrían haber sido mencionadas, pero solo para mantenerlas juntas:
asegúrese de que sus claves estén presentes, por defecto otra carpeta ~ / .ssh /, es decir, id.rsa e id.rsa.pub
asegúrese de que las claves tengan los permisos correctos, puede ejecutar chmod:
chmod 600 ~ / .ssh / id_rsa
chmod 644 ~ / .ssh / id_rsa.pub
asegúrese de que el contenido de su clave pública (id_rsa.pub) coincida con el que se cargó en la configuración del repositorio remoto
Finalmente arregle los problemas con el agente ssh : ssh-add
Más información: https://itcodehub.blogspot.com/2015/01/ssh-add-problems-with-ssh-agent-and.html
fuente
chmod
como usted describe. Gracias.Si está utilizando la interfaz de usuario de GitHub para Mac, verifique las preferencias para asegurarse de haber iniciado sesión.
fuente
Recibí el mismo error durante 'git push'. En el lado del cliente tuve dos origen y maestro. Quité uno, luego funcionó bien.
fuente
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 solo pide una contraseña, considere que se está conectando a través de ssh.better usa http url.
fuente
También en ubuntu, a pesar de que ya se ingresó la clave SSH en la configuración de BitBucket, obtuve este problema. La razón era que estaba intentando lo siguiente:
No estoy seguro de por qué, pero se resolvió usando
No se usa sudo.
fuente
Para mí probé esto ...
entonces corro
y para generar la clave puedes ejecutar
esto generará el par de claves (públicas y privadas).
puede almacenar esta clave en github para obtener más información. Lea esto Agregar una nueva clave SSH a su cuenta de GitHub
Espero que ayude a otros :)
fuente
Estaba teniendo un problema similar a @Batman. Sin embargo, debido a que estaba ejecutando esto en / usr / local / src / projectname, ejecutar sin sudo no era una opción.
Simplemente agregue el indicador -E para preseleccionar el entorno (su ~ / .ssh / ruta).
$ sudo -E git clone git@your_repo
Del hombre sudo:
fuente
Una vez que esto suceda es cuando sigas las instrucciones de GitHub después de crear tu repositorio. Git le indicará que agregue su 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
.git
sufijo. Agregue el control remoto de la siguiente manera:git remote add origin [email protected]:<user>/<project>
fuente
tl; dr
en el
~/.ssh/config
puestoEscenario Si está utilizando una versión de openSSH> 7, como decir en una MacBook Pro con barra táctil, es
ssh -V
OpenSSH_7.4p1, LibreSSL 2.5.0
También tenía una Mac más antigua que originalmente tenía su clave que colocó en Github, es posible que esté utilizando una clave id_dsa. OpenSSH v7 no incluye de manera predeterminada el uso de estas claves DSA (que incluyen esto
ssh-dss
), pero aún puede agregarlo nuevamente al poner el siguiente código en su~/.ssh/config
La fuente que funcionó para mí es este boletín de Gentoo
Ahora al menos puede usar GitHub y luego arreglar sus claves para RSA.
fuente
Encontré esta página mientras buscaba una solución a un mensaje de error similar usando
git pull
un host remoto:Me conecté desde mi máquina local al host remoto a través de
ssh -AY remote_hostname
. Esta no es una solución a la pregunta de OP, pero es útil para otros que se encuentran con esta página, así que publíquela aquí.Tenga en cuenta que, en mi caso,
git pull
funciona bien en mi máquina local (es decir, la clave ssh se configuró y se agregó a la cuenta de GitHub, etc.). Resolví mi problema agregando esto a~/.ssh/config
mi computadora portátil:Luego me volví a conectar al host remoto con
ssh -AY remote_hostname
, ygit pull
ahora funcionó. El cambio en la configuración permite reenviar mi par de claves ssh desde mi máquina local a cualquier host. La-A
opción dessh
reenviarlo realmente en esa sesión ssh. Ver más detalles aquí.fuente
Tal vez su agente ssh no esté habilitado. Puede probarlo
http://git-scm.com/
Instalarlo
Habilitar ssh-agent
C: \ Archivos de programa \ Git \ cmd
start-ssh-agent
fuente
Vaya al panel de su cuenta de GitHub, busque el repositorio de su proyecto, haga clic en la pestaña Configuración : en Implementar claves , deberá agregar su clave SSH. Abra la Terminal y escriba:
Esto copiará la clave de su archivo id_rsa.pub. Entonces, regrese al panel de control de GitHub, péguelo, haga clic en Agregar clave y listo .
La misma solución se aplica a las cuentas de Bitbucket.
fuente