GitLab git mot de passe utilisateur
je viens d'installer GitLab.
j'ai créé un projet appelé projet-x.
j'ai créé quelques utilisateurs et affecté au projet.
Maintenant, j'ai essayé de cloner:
git clone git@192.168.0.108:project-x.git
il m'a demandé un mot de passe.
Quel mot de passe dois-je utiliser?
16 réponses
il m'a demandé le mot de passe.
Il ne devrait pas.
Si vous avez la bonne clé publique / privée représentant un utilisateur autorisé à accéder project-x
, alors gitlab ne vous demandera rien.
mais cela suppose que ssh -vT git@192.168.0.108
fonctionne en premier.
pas strictement lié au scénario actuel. Parfois, quand on vous demande le mot de passe, c'est parce que vous avez ajouté le mauvais format d'origine* (HTTPS au lieu de SSH)
Afficher vos informations à distance avec
git remote -v
si C'est avec L'adresse HTTP(S), c'est la commande à changer:
git remote set-url origin git@gitlab.my_domain.com/example-project.git
la Solution de https://github.com/gitlabhq/gitlab-shell/issues/46 a travaillé pour moi.
En définissant les autorisations:
chmod 700 /home/git/.ssh
chmod 600 /home/git/.ssh/authorized_keys
invite de mot de passe disparaît.
Cela peut se produire si l'hôte a un " - " dans son nom. (Même si c'est légal selon RFC 952.) (Testé en utilisant Git Bash sous Windows 10 en utilisant git 2.13.2.)
ssh me demande un mot de passe pour tout hôte qui a un '-' dans son nom. Cela semble être purement un problème avec l'analyse des fichiers de configuration ssh car l'ajout d'un alias à ~/.ssh / config (et en utilisant cet alias dans Mes urls distantes git) a résolu le problème.
Dans les autres les mots essayez de mettre quelque chose comme ce qui suit dans votre C:/Users / {username}/.SSH / config
Host {a}
User git
Hostname {a-b.domain}
IdentityFile C:/Users/{username}/.ssh/id_rsa
et d'où vous aurez une distance de la forme
origin git@a-b.domain:repo-name.git
modifier l'url pour utiliser le formulaire suivant
git remote set-url origin git@a:repo-name.git
j'avais la bonne clé publique / privée, mais il semble que ça n'ait pas marché de toute façon (j'ai eu les mêmes erreurs, j'ai demandé le mot de passe git-user). Après un redémarrage de l'ordinateur, cela a fonctionné!
dans mon cas, j'utilisais une paire de clés qui n'avaient pas les noms par défaut id_rsa
et id_rsa.pub
.
produire des clés avec ces noms a résolu le problème, et je l'ai trouvé en regardant la sortie de ssh -vT my_gitlab_address
. Fait étrange: il a fonctionné sur un ordinateur avec Ubuntu, mais pas sur d'autres avec des distributions différentes et des versions plus anciennes D'OpenSSH.
j'ai eu ce même problème en utilisant une clé de 4096 bits:
$ ssh-keygen-t rsa-C "GitLab" - b 4096
$ ssh-vT git@gitlabhost
...
debug1: Offre publique de clé: /home/utilisateur/.ssh / id_rsa
debug1: Authentifications qui peuvent continuer: publickey, password
debug1: essai de la clé privée:/home/user/.ssh / id_dsa
debug1: essayer la clé privée: /home/utilisateur/.SSH / id_ibousa
debug1: Suivant la méthode d'authentification: mot de passe
mot de passe de gitlabhost:
Connexion fermée par l'hôte
mais avec la touche 2048 bit (la taille par défaut), SSH se connecte à gitlab sans demander de mot de passe (après avoir ajouté la nouvelle touche pub aux touches gitlab ssh de l'utilisateur)
$ ssh-keygen-t rsa-C "GitLab"
$ ssh-vT git@gitlabhost
Accueillir à GitLab, Joe User!
j'utilise un mac.gitlab est installé dans un serveur centos.
j'ai essayé toutes les méthodes ci-dessus et trouvé la réponse finale pour moi:
mauvais:
ssh-keygen -t rsa
droite:
ssh-keygen -t rsa -C "your.email@example.com" -b 4096
pour ajouter une autre raison à la liste ... dans mon cas, j'ai trouvé que ce problème était causé par un problème de permissions SELinux sur le serveur. Cela vaut la peine de vérifier si votre serveur exécute Fedora / CentOS / Red Hat. Pour tester ce scénario, vous pouvez exécuter:
Client:ssh -vT git@<gitlab-server>
-- demande le mot de passe
Serveur:sudo setenforce 0
Client:ssh -vT git@<gitlab-server>
-- réussit
Serveur:sudo setenforce 1
Dans mon cas le gitlab/git de l'utilisateur authorized_keys
file avait le mauvais contexte de fichier SELinux, et le service ssh se voyait refuser la permission de le lire. J'ai fixé ce côté serveur comme suit:
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/
Et j'ai pu alors git clone
du côté du client comme prévu.
la même solution pour Windows machine:
- Générer la clé SSH et ajouter une clé à Git serveur de laboratoire
- assurez-vous que 2 fichiers clés SSH sont dans /.SSH folder(E. g C:\Users\xxx.ssh)--4-->
Clone devrait être réussi sans mot de passe nécessaire.
j'ai eu le même problème, J'ai passé beaucoup de temps à chercher!
j'ai eu l'idée d'utiliser Eclipse pour importer le projet de GitLab.
une fois le projet importé correctement, j'ai fait la comparaison entre la configuration de:
- le ripositaire Git du projet que j'ai importé dans Eclispe, ("in Eclipse", Git Repository, in myprojectRepo / Working Directory / .git / config)
- celui qui en est faite .git / config, là i envie de pousser mon projet avec git: git push ... et m'a demandé un mot de passe.
Surprise: La télécommande n'a pas la même dans les deux cas. J'ai donné la même chose qu'à eclipse et tout fonctionne.
avait le même problème avec Windows 10 (Je ne sais pas si c'est pertinent).
A tout configuré correctement, le ssh -vT git@myserver
la commande a réussi, mais Gitlab a quand même demandé mon mot de passe.
enlever puis recréer la clé dans Gitlab était l'astuce pour moi.
sur ma machine Windows 10 c'était parce que la variable d'environnement SSH_GIT n'était pas paramétrée pour utiliser le plugin putty que j'avais installé sur ma machine.
vous pouvez généralement si vous avez plusieurs clés setup via ssh sur votre système (mon appareil exécute Windows 10), vous rencontrerez ce problème, le correctif est de:
condition préalable: configurer vos clés SSH comme indiqué par GitLab
- ouvrir /c/Utilisateurs//.fichier SSH / config avec Notepad++ ou votre éditeur préféré
- collez ce qui suit à l'intérieur. Accueil IdentityFile ~/.ssh/
veuillez noter qu'il y a un espace avant le deuxième ligne, très important pour éviter cette solution ne fonctionne pas.
sur Windows 10 en utilisant le terminal sous le code VS j'ai reçu une invite pour le mot de passe de" git@gitlab: "en essayant de:
git push -u origin --all
j'avais établi mes références ssh dans windows et dans gitlab mais J'avais utilisé Windows 10 bash key-gen pour le faire. La solution était alors d'invoquer bash dans VS code terminal et ensuite de lancer la commande à nouveau.
bash
git push -u origin --all
Il a réussi.
pour éviter d'avoir à utiliser bash / git manuellement, je mets alors un lien symbolique entre les fenêtres .SSH / id_rsa et le shell bash .ssh / id_rsa:
C:\Users\bruce\.ssh>mklink id_rsa C:\Users\bruce\AppData\Local\lxss\home\bruce\.ssh\id_rsa
VS Code git menu actions (push, pull, etc.) maintenant travaillé avec gitlab
si vous êtes sûr d'avoir téléchargé le contenu de key.pub dans GitLab, puis:
1 - Ouvrir Git Bash "Pas CMD"
2-parcourir le dossier Solution " chemin du CD"
3-Type Git Init
4-Type Git Add .
4-Type Git Commit
6-Type Git Push
et ça va marcher.. un autre indice: assurez-vous que le chemin du fichier où vous avez copié la clé est correct et équivalent au même chemin qu'il a montré sur CMD lors de la création des clés