Gitolite: ajout d'utilisateur ne fonctionne pas, et REFUSÉ par fallthru lors du clonage en tant que root?
J'ai réussi à init vide repo git sur mon NAS, et j'ai essayé d'ajouter un nouvel utilisateur par la génération d'une nouvelle clé publique "foo.pub" et copier + coller dans keydir/et s'engageant à ce que et en le poussant vers le NAS.
Tout d'abord, les fichiers:
Voici mon ~/.ssh/config fichier:
Host root
HostName iptonas
User root
Port 123
Host foo
HostName iptonas
User foo
Port 123
identityfile ~/.ssh/foo
Attrapé une copie de gitolite-admin du NAS:
git clone ssh://root/gitolite-admin
J'obtiens:
Cloning into 'gitolite-admin'...
remote: Counting objects: 12, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 12 (delta 1), reused 0 (delta 0)
Receiving objects: 100% (12/12), done.
Resolving deltas: 100% (1/1), done.
Voici mon gitolite.fichier conf:
repo gitolite-admin
RW+ = git
repo testing
RW+ = @all
repo newrepo
RW+ = foo
RW+ = bar
Quand j'ai poussé ma copie de gitolite-admin à l'aide de:
git push root:gitolite-admin
J'obtiens:
Counting objects: 10, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (6/6), 1.02 KiB, done.
Total 6 (delta 0), reused 0 (delta 0)
remote: Initialized empty Git repository in /root/repositories/newrepo.git/
To root:gitolite-admin
897113c..e7e2daf master -> master
Maintenant, quand j'essaie de pousser pour le nouveau repo
Lorsque j'essaie d'exécuter:
git clone foo:newrepo
J'obtiens:
Cloning into 'newrepo'...
foo@iptonas's password:
fatal: 'newrepo' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Lorsque j'essaie d'exécuter:
git clone root:newrepo
J'obtiens:
Cloning into 'newrepo'...
FATAL: R any newrepo git DENIED by fallthru
(or you mis-spelled the reponame)
fatal: The remote end hung up unexpectedly
Je ne suis pas sûr de ce que je fais mal?
Je suis en suivant ces instructions:
http://www.nineproductions.com/linux/53-gitolite-hosting.html
Sous "Ajouter des Dépôts et des Utilisateurs"
OriginalL'auteur Jay | 2012-06-01
Vous devez vous connecter pour publier un commentaire.
Ces instructions mentionne le clonage avec un utilisateur qui a un
id_rsa.pub
clé utilisée lors de l'installation de Gitolite.Donc, votre compte doit avoir en sa
~/.ssh
laid_rsa
etid_rsa.pub
clés utilisées par gitolite lors de la déclaration de la "git
' utilisateur (qui est le seul capable de clonergitolite-admin
repo).Maintenant, pour ajouter un utilisateur, non seulement vous devez déclarer l'utilisateur dans le
gitolite.conf
fichier (que vous avez), vous devez également ajouter sa clé publique à l'localegitolite-admin
repo 'keys
' annuaire.Si vous effectuer ces opérations avant de le pousser en arrière
gitolite-admin
, puis Gitolite déclarera que nouvel utilisateur, et votregit clone foo:newrepo
fonctionne.Notez que si vous avez fait le Gitolite de l'installation avec le
git
compte comme je l'ai recommandé avant, vous devriez avoir dans votre fichier de configuration:Et d'aller
git clone git:gitolite-admin
.Le seul moment où vous devriez voir/utiliser
root
est au début de l'installation sur le serveur, afin de déclarer/ajouter legit
compte.Après cela, je tiens à vous recommander de ne pas utiliser/voir
root
n'importe où dans votre processus.Votre
~/.ssh
dossier doit contenir:git
,git.pub
,id_foo
,id_foo.pub
Gitolite bases de son mécanisme d'autorisation sur une authentification faite d'après le nom de la clé publique.
De nouveau: sur le côté serveur, vous devez effectuer les gitolite installation en tant qu'utilisateur comme git, avec comme argument qu'une
/tmp/git.pub
(pas/tmp/id_rsa.pub
)Récapitulons, car il y a beaucoup de confusion ici. Gitolite est basé sur ssh.
Cela signifie que vous avez besoin d'un compte (ici git) sur le côté serveur (qui sera votre Gitolite serveur), dans lequel un
~git/.ssh/authorized_keys
fichier permet d'enregistrer tous les Gitolite admin/users clés publiques.Sur le côté client (votre utilisateur toto), vous devez (au moins pour votre premier utilisateur) les clés publiques et privées à partir de git, et ceux de foo.
Votre
~foo/.ssh/config
fichier contiendra:Noter que l'utilisateur pour toute communication ssh est toujours git! Vous avez toujours contacter le Gitolite serveur via ssh adresse comme
ssh://git@iptonas:123/arepo
.À l'exception, depuis yo avoir plusieurs clés SSH a choisi de partir, vous pouvez taper à la place:
git clone gitadmin:gitolite-admin
, ougit clone foo:newRepo
La première commande va vous permettre de cloner le
gitolite-admin
repo (parce que vous n'avez que l'utilisation de git privé et public des clés ssh, donc vous avez les droits pour le faire).Vous pouvez utiliser ce clone local pour mettre
foo.pub
dans lekeys
répertoire, et de déclarer unnewRepo
dans leconfig
fichier.Puis vous poussez vers l'arrière que les pensions de titres (et Gitolite ne sa magie, la création d'un nouveau dépôt, l'ajout de contenu de
foo.pub
à~git/.ssh/authorized_keys
pour vous, avec une forcés de la commande de script afin d'intercepter les commandes ssh émis parfoo
).(Je préfère de nommage que ssh raccourci '
gitadmin
"au lieu de git, même si les clés publiques/privées sont nommés'git.xxx
", car "gitadmin
' reflète mieux la intention de la ssh commandes que vous en ferez: vous administrez git droits d'accès)La deuxième commande permet de cloner votre
newRepo
et de travailler sur elle.Noter que:
ssh gitadmin
, oussh foo
affichera le gitolite version et les droits associés avec les clés ssh utilisé par chaque ssh raccourcis "
gitadmin
"et"foo
', tel que défini dans la~foo/.ssh/config
fichier.Je devrais peut-être faire des claviers pour git en tant que bien, et aussi d'ajouter "identityfile ~/.ssh/git" config?
réponse édité
Ok, j'ai donc suivi toutes ces instructions, et essayé de courir "git push git:gitolite-admin". On m'a demandé pour git de pw, et après avoir tapé que j'ai eu: "ne Pourrait pas chdir à la maison répertoire /var/services/maisons/git: Aucun fichier ou répertoire \n fatale: 'gitolite-admin' ne semble pas être un dépôt git \n fatale: L'extrémité distante accroché de manière inattendue". Je suppose que je dois trouver un moyen d'éditer ~/.profil ou quelque chose..? Comment pourrais-je arriver à ce fichier?
Je ne pas être à la suite de la "configuration de l'Hébergement Git Profil de l'Utilisateur et le Répertoire de base" étapes de mon nouveau "foo" de l'utilisateur?" non, vous ne devriez pas: cette section est purement pour la configuration de git compte sur le serveur qui sera utilisé pour toutes les communications ssh. Je vais modifier ma réponse pour plus d'.
OriginalL'auteur VonC