Tengo una cuenta de GitHub de trabajo y una personal. Primero usé el personal para proyectos de prueba, luego seguí adelante e hice un repositorio con la otra cuenta en la misma computadora.
Ahora quería crear un nuevo repositorio en mi cuenta personal nuevamente, cambié el global y el local user.name, e hice un nuevo par de claves ssh, ingresado en la página de configuración de GitHub. Luego configuro el directorio
git init
git remote add origin <url>
git push origin
pero eso ahora me dice
ERROR: Permiso a personaluser / newrepo.git denegado
No tengo idea de cómo está conectada la otra cuenta a esta. .git/configno muestra workusernamecosas relacionadas.
Si está utilizando Windows 10, tómese su tiempo para leer la respuesta de Rajan.
git
permissions
github
Raz Faz
fuente
fuente

Respuestas:
esto suena muy similar a mi configuración de trabajo actual. parece que ya ha configurado su
ssh-keyspor lo que también necesita crear un~/.ssh/configarchivo y completarlo con información similar a esta:Cada propiedad suena bastante autoexplicativa, pero la
IdentitiesOnlyúnica. No intentaré explicar para qué sirve, pero está en mi configuración actual y funciona bien.También vale la pena señalar que
Host URLes solo un puntero para obtener la configuración de usuario correcta y no tiene ningún efecto en la obtención de los archivos correctamente en suHostNameURL de destino .Ahora solo necesita asegurarse de que su URL
origin(o cualquieraremoteen general) coincida con laHostURL correcta en sus respectivos repositorios según su nombre de usuario. Si ya tiene repositorios personales existentes, puede editar los repositorios.git/configarchivo de en su editor de texto:o hacerlo a través de la línea de comando:
Lo mismo ocurre con tu trabajo uno:
o de nuevo, a través de la línea de comando:
Por supuesto, siempre puede configurar una de sus
HostURL en su~/.ssh/configarchivo comoSolo solía
work.github.comver las relaciones de configuración más fáciles.Una vez que estén todos configurados, debería poder presionar a cada control remoto respectivo.
EDITAR
Una cosa a tener en cuenta que acabo de descubrir es que si alguna vez establece valores de configuración global de git para su
user.emailvalor (y supongouser.nameque también enviaría un valor diferente), git mostrará sus confirmaciones como ese usuario de correo electrónico. Para evitar esto, puede anular la configuración de configuración global de git dentro de su repositorio local:Esto debería enviar confirmaciones como el usuario correcto para ese repositorio.
fuente
Vaya a Panel de control> Cuentas de usuario> Administrador de credenciales> Credenciales genéricas
eliminar las credenciales de git. Luego ejecuta git push. Esto le pedirá las credenciales de git. Ingrese sus credenciales correctas.
fuente
control /name Microsoft.CredentialManageren la línea de comandogit pushcon un error , sigue arrojando los mismos errores todo el tiempo, incluso después del reinicio del terminal. Pero gracias, de todos modos , me ahorró mucho tiempo al finalTambién puede simplemente cambiar a https, en lugar de ssh. Si usa https, respetará la configuración .git / config. Entonces, en .git / config, cambie:
url = [email protected]:USER/PROJECT.gita
url = https://[email protected]/USER/PROJECT.git(estos valores están en la página del proyecto git, haga clic en los botones
SSHyHTTPpara obtener los nuevos valores);fuente
httpses que tienes que escribir el usuario / contraseña cada vez que haces unapush, a menos que haya alguna configuración de git que no conozcagit push https://username:[email protected]/user/repo.git... si está de acuerdo conpasssu historial de shellgithub te identifica por la clave ssh que ve, no por ninguna configuración de git.
Por lo tanto, debe asegurarse de que la clave ssh de su cuenta de trabajo no esté en su llavero cuando intente presionar como su cuenta personal y viceversa. Úselo
ssh-add -lpara determinar qué llaves están en su llavero yssh-add -d keyfilepara quitar una llave de su llavero.Además, es posible que deba verificar
~/.ssh/configsi lo ha configurado para presentar ciertas claves ssh a github. Finalmente, no sé cómo trata github con dos cuentas que tienen la misma clave pública ssh, así que asegúrese de no hacer eso.fuente
GIT_SSHvariable de entorno para decirle a git que use un comando diferente para ssh; en particular, puede hacer que use una clave específica. Consulte la página principal de manual de git , o tal vez esta pregunta .ssh-add -d keyfileTuve el mismo problema recientemente porque creé una nueva cuenta de github. Probé las respuestas anteriores pero no sirvió de nada. Luego vi una publicación en algún lugar sobre cómo eliminar github de Keychain Access (solo si está usando mac ). Cuando git push, solicita el nombre de usuario y la contraseña, ¡y funcionó!
fuente
Yo tuve el mismo problema. Resulta que tenía dos cuentas en GitHub usando la misma clave SSH y GitHub usó de forma predeterminada la cuenta incorrecta que no tenía permiso para el repositorio que buscaba. Eliminé la clave SSH de la cuenta que no usé, todo funcionó como se esperaba.
Puede probar con qué cuenta se autentica GitHub:
Para mí, esto originalmente mostraba el nombre de usuario incorrecto, pero después de eliminar la clave SSH duplicada de esa cuenta, mostró el nombre de usuario correcto y mi extracción y envío a mi repositorio funcionó bien.
fuente
Sé que esto podría ser un poco tarde, pero estuve atrapado con esto durante bastante tiempo y finalmente lo arreglé así:
Entrar en acceso a llavero (osX)
buscar git (asegúrese de haber seleccionado Todos los elementos)
¡Espero que esto ayude!
fuente
Esta es una forma de hacer esto: puede usar diferentes configuraciones ssh para diferentes cuentas ssh.
Actualizado el 22 de febrero:
Consulte este enlace: https://gist.github.com/2351996
fuente
Si cambiar la clave SSH asociada con la cuenta no funciona, cambie el correo electrónico asociado con la cuenta.
Vaya a Github> Configuración de la cuenta> Correos electrónicos y verifique que la dirección de correo electrónico que está utilizando para confirmar coincida con el correo electrónico de la cuenta.
Para ver qué dirección de correo electrónico que está utilizando para cometer, ejecute el siguiente comando:
git config --global user.email. Si necesita cambiar la dirección de correo electrónico que está utilizando para confirmar, ejecutegit config --global user.email "[email protected]".fuente
Tengo el mismo problema. A continuación se muestra lo que sucede en mi caso:
Previamente hice git para no pedir mi credencial cada vez que hablo con el repositorio remoto por esto: git config --global credential.helper wincred
Resolví el problema ejecutando el mismo comando con "none" reemplazando "wincred" git config --global credential.helper none
Luego git preguntar mi nombre de usuario / pase de nuevo y todo va bien
fuente
También tuve este problema, pero ninguna de las otras soluciones funcionó para mí. Resulta que para el trabajo habíamos creado un
.netrcarchivo que tenía entradas para la autenticación de github. Elgitcomando siempre usaba el.netrc, que tenía mi antiguo nombre de usuario y contraseña. Tuve que editar las entradas en mi.netrcarchivo para usar el nuevo nombre de usuario y contraseña.fuente
He encontrado una solución temporal en la que primero se ejecuta y
killall ssh-agentluego se agregan las claves ssh generadas para la cuenta que necesita usarssh-add ~/.ssh/id_4shameerEsta es la única forma en que podemos trabajar en la cuenta de github múltiple cuando obtenemos el error de tipo
ERROR: Permission to user/repo-git.git denied to username.fuente
Nunca tuve ningún problema con git hasta que en el trabajo recientemente conectaron nuestros macbooks a Active Directory y agregaron algunas cuentas de administrador a mi máquina. Sin embargo, después de eso, git funcionaría bien hasta que bloqueé la pantalla y volví. Entonces obtendría un error vago similar a
Solo tengo una clave ssh en esta máquina en particular para mi usuario y estoy usando zsh en mi término. El correo electrónico y el nombre del usuario eran correctos, por lo que ese no era el problema. Ergo, reiniciar después de cada vez que bloqueo mi máquina es inútil. La solución para mí fue editar mi
.zshrcarchivo y descomentar la línea que exporta la clave ssh (lo que nunca antes había tenido que hacer y he estado usando zsh durante años).La línea debería verse así:
Una vez que hagas esto, simplemente ejecuta una
resetterminal y todo funciona bien.Espero que esto ayude a alguien más.
fuente
Me gustaría agregar: si está trabajando en la cuenta de otro usuario, asegúrese de agregarse al área de colaboradores en la configuración de repositorios.
fuente
También me encontré con este problema y ninguna de las soluciones anteriores funcionó incluso después de que eliminé mi clave ssh e hice una nueva. Resulta que ssh-agent estaba usando una clave en caché, así que tuve que ejecutarla
killall ssh-agenty luego funcionó.Encontré la solución aquí. http://fzysqr.com/2012/08/28/quick-tip-wrong-ssh-key-cached-with-github-after-changing-users-and-keys/
fuente