J'ai des problèmes avec Gitlab. J'ai utilisé le guide suivant pour installer et configurer Gitlab https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.md . L'installation semblait bien se passer et tout. L'application Web semble bien fonctionner. Cependant, je ne peux pas cloner, tirer, pousser, je ne peux pas utiliser Gitlab. J'ai vu 403 erreurs avec HTTP et autorisation refusée lors de la tentative de clonage via SSH.
Je me suis assuré que mes clés privées sont configurées correctement sur Windows et OS X. Je peux voir les clés publiques sur le serveur. J'ai ajouté ce qui suit à mon fichier de configuration dans ~/.ssh.config
Host {hostname}
User git
Hostname {hostname}
PreferredAuthentications publickey
IdentityFile C:/Users/{username}/.ssh/id_rsa
Voici ce que je vois dans/var/log/secure
Jan 14 17:31:48 dev_version_control sshd[3696]: Connection closed by 192.168.17.113
Jan 14 17:32:18 dev_version_control sshd[3700]: Connection closed by 192.168.17.113
Le /var/log/message
n'a pas joué de rôle lorsque j'ai essayé d'utiliser git ou ssh
Je ne sais pas où aller d'ici. Aucune suggestion?
Je ne sais pas ce que vous entendez par SSH en utilisant le nom d'utilisateur git. Le guide que j'ai utilisé n'a pas créé de mot de passe pour l'utilisateur git et a déclaré que l'utilisateur ne peut pas être utilisé pour se connecter.
À condition que vous ayez chargé votre clé privée sur votre client, il semble que cela puisse être un problème d'autorisations sur le répertoire personnel de l'utilisateur 'git' et le répertoire .ssh.
Veuillez essayer de changer votre répertoire/home/git en un masque de 0711:
chmod 0711 /home/git
Assurez-vous que le répertoire /home/git/.ssh a un masque de 0700:
chmod 0700 /home/git/.ssh
Assurez-vous que le fichier /home/git/.ssh/authorized_keys a un masque de 0600:
chmod 0600 /home/git/.ssh/authorized_keys
Remplacez/home/git par quel que soit votre répertoire personnel pour l'utilisateur 'git', s'il était différent dans le tutoriel. S'il ne s'agit pas d'autorisations, veuillez laisser un commentaire et nous verrons quel pourrait être le problème.
Dans ma situation, j'ai installé gitlab via des packages FreeBSD. Gitlab SSH ne fonctionnait pas. La cause de ceci était un mauvais répertoire personnel pour git: (vipw)
git:*:211:211::0:0:gitosis user:/usr/local/git:/bin/sh
J'ai changé cela en:
git:*:211:211::0:0:gitosis user:/home/git:/bin/sh
Vérifiez que vous n'avez qu'un seul enregistrement pour votre clé publique (qui a été importée via la face Web) dans /home/git/.ssh/authorized_keys
et cette clé a le préfixe et le titre de gitlab. En d'autres termes, si vous avez ajouté la même clé manuellement avant d'installer gitlab, supprimez-la.
Je recommanderais également de vérifier que l'utilisateur a la permission appropriée de cloner/tirer/pousser dans gitlab. Je viens de passer trop de temps à parcourir les configurations ssh/https, alors que la raison du problème était que l'utilisateur dans gitlab n'avait pas assez d'autorisations ...
Cela peut se produire si l'hôte a un "-" dans son nom. (Même si cela est légal selon RFC 952 .)
ssh me demande un mot de passe pour tout hôte qui se trouve avoir un "-" dans son nom. Cela semble être purement un problème avec l'analyse du fichier de configuration ssh car l'ajout d'un alias à ~/.ssh/config (et l'utilisation de cet alias dans mes URL distantes git) a résolu le problème.
En d'autres termes, essayez de mettre quelque chose comme ceci dans votre C:/Users/{username} /. Ssh/config
Host {a}
User git
Hostname {a-b.domain}
IdentityFile C:/Users/{username}/.ssh/id_rsa
et où vous avez une télécommande du formulaire
Origin [email protected]:repo-name.git
supprimez-le puis ré-ajoutez-le en utilisant le formulaire
Origin git@a:repo-name.git
Si vous utilisez des variables d'environnement pour transmettre la clé, vous devez les coder en base64, sinon elles échoueront probablement avec une erreur vous demandant votre phrase secrète. Cela signifie que la clé est corrompue. Si tu vois:
$ ssh-add <(echo "$SSH_PRIVATE_KEY")
Enter passphrase for /dev/fd/63: ERROR: Job failed: exit code 1
Ensuite, base64 code la variable SSH_PRIVATE_KEY. Si vous êtes sous OS X,
cat ~/.ssh/ssh_key_for_project | base64 | pbcopy
va l'encoder et le copier dans votre presse-papiers. Maintenant, changez la ligne de script .gitlab-ci.yml en
- ssh-add <(echo "$SSH_PRIVATE_KEY" | base64 -d)
Mon problème était que le fichier de clés privées id_rsa créé et enregistré par puttygen a un format différent de celui créé à partir d'une machine ubuntu. Après avoir créé une paire de clés à partir de la machine ubuntu, copiez ces fichiers sur la machine Windows sous le dossier% UserProfile% .ssh, puis ajoutez la nouvelle clé publique générée à Gitlab. Plus aucune autorisation refusée pour moi
L'exécution de eval $(ssh-agent)
a résolu mon problème.