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/config
no muestra workusername
cosas 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-keys
por lo que también necesita crear un~/.ssh/config
archivo 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 URL
es 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 suHostName
URL de destino .Ahora solo necesita asegurarse de que su URL
origin
(o cualquieraremote
en general) coincida con laHost
URL correcta en sus respectivos repositorios según su nombre de usuario. Si ya tiene repositorios personales existentes, puede editar los repositorios.git/config
archivo 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
Host
URL en su~/.ssh/config
archivo comoSolo solía
work.github.com
ver 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.email
valor (y supongouser.name
que 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.CredentialManager
en la línea de comandogit push
con 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.git
a
url = https://[email protected]/USER/PROJECT.git
(estos valores están en la página del proyecto git, haga clic en los botones
SSH
yHTTP
para obtener los nuevos valores);fuente
https
es 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 conpass
su 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 -l
para determinar qué llaves están en su llavero yssh-add -d keyfile
para quitar una llave de su llavero.Además, es posible que deba verificar
~/.ssh/config
si 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_SSH
variable 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 keyfile
Tuve 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
.netrc
archivo que tenía entradas para la autenticación de github. Elgit
comando siempre usaba el.netrc
, que tenía mi antiguo nombre de usuario y contraseña. Tuve que editar las entradas en mi.netrc
archivo 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-agent
luego se agregan las claves ssh generadas para la cuenta que necesita usarssh-add ~/.ssh/id_4shameer
Esta 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
.zshrc
archivo 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
reset
terminal 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-agent
y 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