J'essaie de configurer gitlab (6.5.1) sur un nouveau serveur propre. Tout semble fonctionner, mais git ne peut pas 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. 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
Il s'agit d'une configuration propre sans restes. Ma clé a été correctement ajoutée au fichier des clés autorisées et est la seule répertoriée.
L'exécution de ssh avec la journalisation du débogage montre des erreurs liées à Ruby vars d'environnement.
Le mien est propre. Débogage SSH affiche 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 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 git nu dans ~gitlab/repositories/username/reponame.git
est créé à chaque fois et semble disposer des autorisations appropriées.
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
et 127.0.0.1:8080
pour la valeur d'écoute dans Unicorn.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 dans Shell.yml
en vain. J'ai également essayé de câbler ceci directement au serveur Unicorn 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 est pas auto-signé et fonctionne bien pour les navigateurs, mais j'ai essayé de définir self_signed_cert: true
en tous cas. 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 déjà quelque chose de singe pour corriger cela, mais j'ai essayé de changer git remote add Origin gitlab@server:username/reponame.git
à `` 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 suis capable pour 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 uniquement la partie de connexion ssh avec ssh -T gitlab@server
fonctionne très bien.
Qu'est-ce qui pourrait provoquer cette erreur?
Comment faire pour déboguer un tel problème dans gitlab? Il ne semble rien y avoir de pertinent du tout dans ~gitlab/gitlab-Shell/gitlab-Shell.log
. Où trouver un message d'erreur plus informatif?
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:
client_input_channel_req: channel 0 rtype [email protected] reply 0
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:
gitlab:x:1011:1012:GitLab,,,:/path/to/gitlab:/bin/bash
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:
command="/path/to/gitlab/gitlab-Shell/bin/gitlab-Shell key-2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa A...
avec / chemin/vers/gitlab/gitlab-Shell/bin/gitlab-Shell appartenant à l'utilisateur et à l'exécutable gitlab.
Vous pouvez être sûr que gitlab-Shell est pleinement opérationnel en lançant la commande:
# /path/to/gitlab-Shell/bin/gitlab-Shell
Welcome to GitLab, Anonymous!
Si la connexion à distance fonctionne et est correctement connectée au gitlab-Shell, vous devriez recevoir le même message de bienvenue (mais correspondant à l'utilisateur dont vous avez utilisé la clé ssh pour vous connecter) avant de vous jeter si vous essayez de vous connecter à distance.
$ ssh gitlab@server
Welcome to GitLab, <your user's full name>!
Connection to <server> closed.
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:
http_settings:
# trailing slash is important
gitlab_url: "https://remote_server/"
ca_file: /path/to/webserver/certificate.crt
et éventuellement :
self_signed_cert: false
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 écrit par écrit connecté à Gitlab au cas où quelqu'un d'autre aurait le même problème.
J'ai trouvé ma solution ici: https://stackoverflow.com/questions/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 était de supprimer la variable d'environnement GIT_SSH. Ensuite, tout a fonctionné.
J'espère que cela aide quelqu'un là-bas.