J'essaie de configurer gitlab (6.5.1) sur un nouveau serveur propre. Tout semble fonctionner, mais git est incapable de pousser vers n'importe quel projet. Suivre les commandes de la page de projet nouvellement créée et pousser vers la télécommande via ssh donne:
$ git push -u origin master
fatal: Could not read from remote repository.
Please make sure you have the correct access
rights and the repository exists.
Cela semble être un problème assez courant. Malheureusement, il semble avoir un certain nombre de causes potentielles et aucune ne semble correspondre. Depuis le numéro 3424 d'une ancienne version et de diverses autres sources en ligne, j'ai vu et vérifié les suggestions suivantes:
Clés ssh restantes
Il s'agit d'une configuration propre sans restes. Ma clé a été ajoutée correctement au fichier de clés autorisées et est la seule répertoriée.
L'exécution de ssh avec la journalisation du débogage affiche des erreurs liées aux variables d'environnement Ruby.
Le mien est propre. Le débogage SSH montre une connexion réussie. Tout ce qui concerne la négociation de l'authentification est normal, alors c'est la fin de la sortie:
debug1: Sending command: git-receive-pack 'username/reponame.git' debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 debug1: client_input_channel_req: channel 0 rtype [email protected] reply 0 debug1: channel 0: free: client-session, nchannels 1 debug1: fd 0 clearing O_NONBLOCK debug1: fd 1 clearing O_NONBLOCK
Problèmes avec l'environnement gitlab-shell.
Contrairement à beaucoup d'autres avec le même message d'erreur ci-dessus, mon script de vérification gitlab-shell renvoie un bilan de santé propre:
% sudo -u gitlab -H ~gitlab/gitlab-shell/bin/check Check GitLab API access: OK Check directories and files: /var/lib/gitlab/repositories: OK /var/lib/gitlab/.ssh/authorized_keys: OK Test redis-cli executable: redis-cli 2.8.5 Send ping to redis server: PONG
Redémarrez {unicorn, sidekiq, redis}
Les rapports selon lesquels le redémarrage d'un ou de plusieurs services efface ce problème ne semblent pas s'appliquer ici. Ce n'est pas un problème intermittent que la relecture d'un démon corrige.
Le dépôt n'est pas créé physiquement
Mais il est. La première fois à chaque fois, le dépôt nu git
~gitlab/repositories/username/reponame.git
est créé à chaque fois et semble avoir les autorisations correctes.Gitlab-shell ne peut pas parler au serveur API car A) des problèmes DNS, B) une liaison ip / port / interface incorrecte C) ne pas avoir / avoir une barre oblique de fin.
Le script de vérification indique que l'accès à l'API est correct.
Je n'exécute pas nginx, donc le problème de liaison IP par défaut lié à cela est n / a.
J'ai essayé les deux
*:8080
et127.0.0.1:8080
pour la valeur d'écouteunicorn.yml
.Au-delà de cela, j'ai essayé diverses itérations de localhost, 127.0.0.1 et le nom de domaine complet (qui résout très bien le DNS) avec et sans barres obliques en
shell.yml
vain. J'ai également essayé de câbler ceci directement au serveur licorne sur le port 8080 au lieu de l'hôte Apache SSL / proxy sur le port 80. Rien ne semble faire de différence. Mon certificat n'est pas auto-signé et fonctionne bien pour les navigateurs, mais j'aiself_signed_cert: true
quand même essayé de le configurer . Rien.Les chemins git signalés sont incorrects, ajoutez un chemin qualifié complet depuis la page d'accueil de l'utilisateur gitlab.
Cela semble être une suggestion légitime si le gitlab-shell ne fait pas quelque chose de singe pour corriger cela déjà, mais j'ai essayé de changer
git remote add origin gitlab@server:username/reponame.git
en `` git remote add origin gitlab @ server: repositories / username / reponame.git` en vain. Même erreur.
Cela semble être la litanie de solutions suggérées, mais aucune ne semble juste. Notez que je peux pousser sur http. L'invite de connexion accepte mon nom d'utilisateur et mon mot de passe LDAP et accepte un push. Ce n'est qu'un problème en essayant d'utiliser SSH. Tester juste la partie de connexion ssh avec ssh -T gitlab@server
fonctionne très bien.
Quoi d'autre pourrait être à l'origine de cette erreur?
Comment procéder pour déboguer un tel problème dans gitlab? Il ne semble rien y avoir de pertinent du tout ~gitlab/gitlab-shell/gitlab-shell.log
. Où trouver un message d'erreur plus informatif?
la source
Réponses:
Je suis sûr que vous avez un problème de configuration entre SSH et le système à cause de ce message de débogage SSH:
Vous recevez ce message immédiatement après une authentification réussie et aucun message de bash ce qui signifie qu'aucun programme n'a été lancé après la connexion.
Regardez dans votre fichier passwd si vous avez les bons paramètres pour l'utilisateur gitlab:
Vérifiez que bash n'a rien de bizarre dans les fichiers de configuration tels que
Montez ensuite au niveau supérieur: Gitlab-shell Vérifiez que /path/to/gitlab/.ssh/authorized_keys a la configuration ci-dessous:
avec / path / to / gitlab / gitlab-shell / bin / gitlab-shell appartenant à l'utilisateur gitlab et exécutable.
Vous pouvez être sûr que gitlab-shell est pleinement opérationnel en lançant la commande:
Si la connexion à distance fonctionne et est correctement connectée au gitlab-shell, vous devriez obtenir le même message de bienvenue (mais correspondant à l'utilisateur dont vous avez utilisé la clé ssh pour vous connecter) avant de vous décharger si vous essayez de vous connecter à distance.
Aucun message ici n'indique probablement que ssh ne vous connecte pas du tout à gitlab.
Enfin, vérifiez votre configuration gitlab-shell (config.yml) et vérifiez si:
et éventuellement :
la source
/bin/false
. Soit le package Arch ne définit pas le shell correctement lors de l'ajout de cet utilisateur, soit je l'ai cassé quelque part dans le processus d'implémentation de l'authentification LDAP sur ce système. Merci pour tout l'effort.sudo adduser --disabled-login --gecos 'GitLab' git
. Il devrait donc fonctionner sans coque. Je cherche toujours une autre solution.J'ai eu ce même problème et après des jours de recherche sur Google et de recherche de débordement de pile, j'ai finalement trouvé mon problème. Je voulais que cela soit connecté par écrit à Gitlab au cas où quelqu'un d'autre aurait le même problème.
J'ai trouvé ma solution ici: /programming/17307154/git-bash-push-to-bitbucket-ignores-ssh-key
Je suis sous Windows et le problème était que Git Bash essayait d'obtenir son emplacement de clé SSH à partir de plink.exe, qui est installé avec Putty.
La solution a été de supprimer la variable d'environnement GIT_SSH. Ensuite, tout a fonctionné.
J'espère que cela aide quelqu'un là-bas.
la source