J'essaie de configurer gitlab (6.5.1) sur un nouveau serveur propre. Tout semble fonctionner, mais git est incapable de pousser vers un quelconque projet. En suivant les commandes de la page du projet nouvellement créé et en poussant sur le serveur distant via ssh, on obtient les résultats suivants :
$ 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.
Il semble que ce soit un problème assez courant. Malheureusement, il semble avoir un certain nombre de causes potentielles et aucune d'entre elles ne semble correspondre. De numéro 3424 sur une ancienne version et diverses autres sources en ligne, j'ai vu et vérifié les suggestions suivantes :
-
Clés ssh restantes
C'est une installation propre, sans restes. Ma clé a été ajoutée au fichier des clés autorisées correctement et c'est la seule qui est listée.
-
L'exécution de ssh avec la journalisation de débogage montre des erreurs liées aux variables d'environnement Ruby.
Le mien est propre. Débogage SSH montre une connexion réussie. Tout ce qui concerne l'échange d'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 eow@openssh.com 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, ma vérification gitlab-Shell Shell renvoie un bulletin 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émarrer {unicorn,sidekiq,redis}
Les rapports indiquant que le redémarrage d'un ou plusieurs services résout le problème ne semblent pas s'appliquer ici. Il ne s'agit pas d'un problème intermittent que le redémarrage d'un démon permet de résoudre.
-
Le repo n'est pas créé physiquement
Mais c'est le cas. La première fois, à chaque fois, le repo git nu en
~gitlab/repositories/username/reponame.git
est créé à chaque fois et semble avoir les bonnes permissions. -
Gitlab-Shell ne peut pas se connecter au serveur API à cause A) de problèmes de DNS, B) d'une mauvaise liaison ip/port/interface C) de l'absence ou de la présence d'un slash de fin de ligne.
La vérification du script indique que l'accès à l'API est correct.
Je n'utilise pas nginx, donc le problème de liaison IP par défaut qui y est lié est sans objet.
J'ai essayé les deux
*:8080
y127.0.0.1:8080
pour la valeur d'écoute dansunicorn.yml
.En outre, j'ai essayé plusieurs itérations de localhost, 127.0.0.1 et le nom de domaine entièrement qualifié (qui est bien résolu par le DNS) avec et sans les slashs de fin de ligne dans la ligne de commande.
shell.yml
en vain. J'ai également essayé de le connecter directement au serveur Licorne sur le port 8080 au lieu de l'hôte SSL / proxy Apache sur le port 80. Rien ne semble faire de différence. Mon certificat est le suivant no auto-signés et fonctionnent bien pour les navigateurs, mais j'ai essayé de paramétrerself_signed_cert: true
de toute façon. Rien. -
Les chemins git rapportés sont incorrects, ajoutez le chemin entièrement qualifié à partir de la maison de l'utilisateur de gitlab.
Cela semble être une suggestion légitime si le gitlab-Shell ne fait pas déjà quelque chose pour corriger cela, mais j'ai essayé de modifier
git remote add origin gitlab@server:username/reponame.git
à "git remote add origin gitlab@server:repositories/username/reponame.git" en vain. Même erreur.
Telle semble être la litanie des solutions proposées, mais aucune d'entre elles ne semble correcte. Note I suis capable pour pousser sur le http. L'invite de connexion accepte mon nom d'utilisateur et mon mot de passe ldap et accepte un push. Ce n'est un problème qu'en essayant d'utiliser SSH. En testant uniquement la partie connexion ssh avec ssh -T gitlab@server
fonctionne bien.
Qu'est-ce qui pourrait causer cette erreur ?
Comment faire pour déboguer un tel problème dans gitlab ? Il ne semble pas qu'il y ait quoi que ce soit de pertinent dans ~gitlab/gitlab-shell/gitlab-shell.log
. Où trouver un message d'erreur plus informatif ?
0 votes
Quelle est la sortie de : "ssh -vv gitlab@server" ? ??
0 votes
@DrGkill Rien d'intéressant (à mes yeux), voyez par vous-même .
0 votes
Vérifiez dans votre sshd_config si gitlab est autorisé pour la connexion externe. Je dirais que 2 coupables possibles : SSH ou gitlab-Shell. Que dit auth.log lorsque gitlab se connecte ?
0 votes
@DrGkill J'ai vérifié cela (et s'il n'était pas autorisé à se connecter en externe par sshd ou pam, les journaux que je vous ai montrés ci-dessus n'auraient pas montré une notification d'authentification réussie). SSH se connecte très bien. Les journaux côté serveur montrent une authentification réussie, qu'une session a été ouverte, quelques trucs systemd sur la configuration de l'env utilisateur, puis "received disconnect from <remote ip>" et d'autres trucs sur le nettoyage de la session.