tab - Contraseña de usuario de gitLab git
gitlab tag (16)
Acabo de instalar GitLab.
Creé un proyecto llamado project-x.
Creé pocos usuarios y se lo asigné al proyecto.
Ahora traté de clonar:
git clone [email protected]:project-x.git
Me solicitó una contraseña.
¿Qué contraseña debo usar?
Me impulsó a buscar la contraseña.
No debería.
Si tiene la clave pública / privada correcta que representa a un usuario autorizado para acceder a project-x
, entonces gitlab no le pedirá nada.
Pero eso supone que ssh -vT [email protected]
está trabajando primero.
En Windows 10 usando la terminal bajo el Código VS, recibí un mensaje de "contraseña de git @ gitlab:" cuando trato de:
git push -u origin --all
Había establecido mis credenciales ssh en windows y en gitlab pero había usado Windows 10 bash key-gen para hacerlo. La solución era invocar bash en el terminal de código VS y luego emitir el comando nuevamente.
bash
git push -u origin --all
Tuvo éxito.
Para evitar tener que usar bash / git manualmente, coloco un enlace simbólico entre las ventanas .ssh / id_rsa y el shell bash .ssh / id_rsa:
C:/Users/bruce/.ssh>mklink id_rsa C:/Users/bruce/AppData/Local/lxss/home/bruce/.ssh/id_rsa
Acciones del menú VS Code Git (push, pull, etc.) ahora trabajadas con gitlab
En mi caso, estaba usando un par de claves que no tenían los nombres predeterminados id_rsa
e id_rsa.pub
.
Producir claves con estos nombres resolvió el problema, y en realidad lo encontré mirando el resultado de ssh -vT my_gitlab_address
. Extraño hecho: funcionó en una computadora con Ubuntu, pero no en otras con diferentes distribuciones y versiones anteriores de OpenSSH.
En mi máquina con Windows 10 fue porque la variable de entorno SSH_GIT no estaba configurada para usar el plink de masilla que tenía instalado en mi máquina.
Esto puede suceder si el host tiene un ''-'' en su nombre. (Aunque esto es legal según RFC 952 ). (Probado usando Git Bash bajo Windows 10 usando git 2.13.2.)
ssh me pide una contraseña para cualquier host que tenga un ''-'' en su nombre. Esto parecería ser un problema con el análisis del archivo de configuración ssh, ya que al agregar un alias a ~ / .ssh / config (y al usar ese alias en las direcciones remotas de mi git) se resolvió el problema.
En otras palabras intente poner algo como lo siguiente en su C: / Users / {username} /. Ssh / config
Host {a}
User git
Hostname {a-b.domain}
IdentityFile C:/Users/{username}/.ssh/id_rsa
y donde tienes un control remoto de la forma
origin [email protected]:repo-name.git
cambie la URL para usar el siguiente formulario
origin git@a:repo-name.git
Estoy usando un mac.gitlab está instalado en un servidor centos.
He intentado todos los métodos anteriores y encontré la respuesta final para mí:
incorrecto:
ssh-keygen -t rsa
derecho:
ssh-keygen -t rsa -C "[email protected]" -b 4096
La misma solución para la máquina de Windows:
- Generar clave SSH y agregar clave al servidor Git lab
- Asegúrese de que 2 archivos de clave SSH estén en la carpeta /.ssh (por ejemplo, C: / Users / xxx.ssh)
El clon debe ser exitoso sin necesidad de contraseña.
La solución de https://github.com/gitlabhq/gitlab-shell/issues/46 funcionó para mí.
Al configurar los permisos:
chmod 700 /home/git/.ssh
chmod 600 /home/git/.ssh/authorized_keys
La solicitud de contraseña desaparece.
No estrictamente relacionado con el escenario actual. A veces, cuando se le solicita una contraseña, es porque agregó el formato de origen * incorrecto (HTTPS en lugar de SSH)
Ver su información remota con
git remote -v
si es con dirección HTTP (S), este es el comando para cambiarlo:
git remote set-url origin [email protected]_domain.com/exmaple-project.git
`* El protocolo HTTP (S) usualmente se usa para repositorios públicos, y la autenticación SSH es más común para proyectos internos donde puede autenticarse con un archivo ssh-key y una contraseña simple, en lugar de un fuerte nombre de usuario + pase
Para agregar un motivo más a la lista ... en mi caso, encontré que este problema era causado por un problema de permisos de SELinux en el servidor. Vale la pena verificar si su servidor ejecuta Fedora / CentOS / Red Hat. Para probar este escenario, puede ejecutar:
Cliente: ssh -vT git@<gitlab-server>
- solicita contraseña
Servidor : sudo setenforce 0
Cliente: ssh -vT git@<gitlab-server>
- tiene éxito
Servidor : sudo setenforce 1
En mi caso, el archivo authorized_keys
del usuario gitlab / git tenía un contexto de archivo SELinux incorrecto, y al servicio ssh se le denegó el permiso para leerlo. Lo arreglé en el lado del servidor de la siguiente manera:
sudo semanage fcontext -a -t ssh_home_t /gitlab/.ssh/
sudo semanage fcontext -a -t ssh_home_t /gitlab/.ssh/authorized_keys
sudo restorecon -F -Rv /gitlab/.ssh/
Y luego pude git clone
en el lado del cliente como se esperaba.
Por lo general, si tiene varias teclas configuradas a través de ssh en su sistema (mi dispositivo está ejecutando Windows 10), se encontrará con este problema, la solución es:
Condición previa: configure sus llaves SSH como lo indica GitLab
- abra el archivo /c/Users//.ssh/config con Notepad ++ o su editor favorito
- pegue lo siguiente dentro de él. Host IdentityFile ~ / .ssh /
Tenga en cuenta que hay un espacio antes de la segunda línea, muy importante para evitar que esta solución no funcione.
Tenía la clave pública / privada correcta, pero parecía que no funcionaba de todos modos (obtuve los mismos errores, solicitando la contraseña de usuario de git). ¡Después de un reinicio de computadora, funcionó!
Tuve el mismo problema cuando uso una clave de 4096 bits:
$ ssh-keygen -t rsa -C "GitLab" -b 4096
$ ssh -vT git @ gitlabhost
...
debug1: clave pública de oferta: /home/user/.ssh/id_rsa
debug1: Autenticaciones que pueden continuar: publickey, contraseña
debug1: prueba de clave privada: /home/user/.ssh/id_dsa
debug1: prueba de clave privada: /home/user/.ssh/id_ecdsa
debug1: Método de autenticación siguiente: contraseña
la contraseña de git @ gitlabhost:
Conexión cerrada por el host
Pero con la clave de 2048 bits (el tamaño predeterminado), ssh se conecta a gitlab sin solicitar una contraseña (después de agregar la nueva clave pub a las claves ssh de gitlab del usuario)
$ ssh-keygen -t rsa -C "GitLab"
$ ssh -vT git @ gitlabhost
Bienvenido a GitLab, Joe User!
Tuve el mismo problema en Windows 10 (no sé si esto es relevante). Si todo estaba configurado correctamente, el comando ssh -vT git@myserver
tuvo éxito, pero Gitlab aún me pidió mi contraseña.
Eliminar y luego volver a crear la clave en Gitlab fue el truco para mí.
Tuve el mismo problema, ¡pasé mucho tiempo buscando!
Tuve la idea de usar Eclipse para importar el proyecto desde GitLab.
Una vez que el proyecto se importó correctamente, hice la comparación entre la configuración de:
- el repositorio Git del proyecto que importé en Eclispe, ("en Eclipse", Repositorio Git, en myprojectRepo / Working Directory / .git / config)
- el que está hecho en .git / config, allí quería impulsar mi proyecto con git: git push ... y me pidió una contraseña.
Sorpresa: el control remoto no tiene el mismo en ambos casos. Le di lo mismo que en eclipse y todo funciona.
si está seguro de que ha cargado el contenido de key.pub en GitLab, entonces: 1- Abra Git Bash "No CMD" 2- Busque la Carpeta de soluciones "Ruta de CD" 3- Escriba Git Init
4- Escriba Git Add .
4- Escriba Git Commit
6- Escriba Git Push
y funcionará ... otra sugerencia: asegúrese de que la ruta del archivo donde copió la clave sea correcta y equivalente a la misma ruta que mostró en CMD al crear las claves