38 votes

Gitolite One User - Many Keys - Différents noms d'utilisateurs

J'ai mis en place gitolite, espérons-le selon les instructions, et tout fonctionne comme prévu.

Je suis un peu indécis quant à la façon dont les noms œuvres, et en regardant à travers les docs n'a pas aidé moi - peut-être que je suis absent quelque chose de simple.

Si j'ai deux machines client, à l'utilisation par une personne réelle, mais sur chacune de ces machines, les noms d'utilisateur sont, disons que dave et david. Comment puis-je organiser les clés dans keydir et tout fichier de configuration de sorte qu'ils représentent tous les deux le même utilisateur? Je reçois le suffixe chose, dave@ordinateur portable, dave@desktop (je pense), tout simplement pas comment faire pour avoir des clients, machine identifiants de connexion, car il semble chercher ce lors de l'authentification (peut-être à cause de la clé publique contenant de l'utilisateur@hôte de l'information?)

Je peux donner plus de détails si nécessaire - je ne voulais pas vous bombarder tous avec des informations non pertinentes.

Merci beaucoup.

52voto

Steve Points 806

lire ici la vieille façon de faire face à cette, au bas de ce post est la recommandation actuelle (plus facile)

Si vous vous demandez comment vous effectuer les opérations suivantes:

  1. David (d'ordinateur à la maison)
  2. David (travail sur ordinateur)
  3. David (ordinateur portable)

Avec différentes clés ssh sur chaque ordinateur il vous suffit de créer la clé (c'est à dire: keygen "david@someemail.com") puis copier la clé publique de votre gitolite keydir répertoire (gitolite-admin/keydir). Lorsque vous effectuez cette simplement le nom de la touche david@homecomputer.pub, david@workcomputer.pub, et david@laptop.pub. Ajouter les clés du référentiel (git add keydir/.), commit (git commit -m "added David's additional keys") et git push sur le serveur.

Gitolite est assez intelligent pour savoir que, même si c'est une clé différente le nom d'utilisateur (avant l' @) est encore david et permettra à l'utilisateur de connecter et d'utiliser l'ACL david

Espérons que cette aide

Pour fixer un scénario où vous avez john_home.pub john_work.pub ouvrez votre gitolite repo (admin repo) et de renommer les touches dans votre kedir de john@work.pub et john@home.pub commit et push. Maintenant, votre utilisateur john pouvez vous connecter à partir de la machine et utiliser le même nom d'utilisateur.

Gardez à l'esprit, pour que cela fonctionne, l'adresse e-mail dans les Clés SSH doit être le même pour toutes les clés de l'utilisateur. Donc, en utilisant l'exemple ci-dessus, dans les keys david@homecomputer.pub, david@workcomputer.pub, et david@laptop.pub tous devraient avoir l'adresse email de l' david@foobar.com.

Ci-dessus était le "vieux chemin" et peuvent causer une complication si vous avez nommé vos clés à l'adresse électronique de façon" contrairement à ce que j'ai dit ci-dessus gitolite NE PAS inspecter votre clé pour la bonne adresse email. S'il vous plaît ignorer (j'ai laissé le commentaire d'origine pour plus de clarté).

Le courant de la façon recommandée d'après la documentation est:

"Le plus simple et le plus compréhensible est de mettre leurs clés dans les différents les sous-répertoires [à l'intérieur de votre /kedir], (alice.pub, home/alice.pub, ordinateur portable/alice.pub, etc)."

référence: http://gitolite.com/gitolite/gitolite.html#multi-key

11voto

fangstar Points 105

Pour Gitolite v3 au moins Solution la plus simple est d'utiliser le sous-système documenté ici http://sitaramc.github.com/gitolite/users.html

Gitolite recherche récursivement par le biais de la keydir et d'associer l'ensemble de l' .pub comme un seul utilisateur. Je suis en utilisant le sous-système maintenant avec un ordinateur portable windows et linux dev machine et fonctionne bien.

L'utilisateur@hôte de la convention semble trop compliqué.

Je suis en train de faire quelque chose comme ceci:

keydir
|--mfang
 | |--laptop01
 | | |--mfang.pub
 | |--linux01
 | | |--mfang.pub
|etc...

4voto

VonC Points 414372

Depuis gitolite v3.5.2-10-g437b497 (septembre 2013, s'engager 59c817d0), il y a une solution plus simple:

ukm, pour "user"gestion de la clé.

Utilisateur de gestion de clés permet à certains utilisateurs d'ajouter et de supprimer des clés.

Il peut introduire un niveau de délégation, lorsqu'il n'est pas juste le gitolite de l'utilisateur administrateur peut ajouter de nouvelles clés publiques ssh, mais les autres utilisateurs peuvent maintenant le faire.

Il a également faciliter l'ajout/suppression de clés publiques ssh.

Vous pouvez le voir en action dans "contrib/t/ukm.t":

Gitolite documentation comprend une section sur ce sujet, mais avec ukm, il est plus facile (section "Utilisateurs qui veulent gérer de multiples touches"):

Votre gitolite administrateur crée votre gitolite d'identité avec l'une de vos clés, que votre initiale de la clé. Cette clé ne peut être géré par le gitolite administrateur, pas par vous. Il détermine fondamentalement sous le nom sous lequel vous êtes connu pour gitolite.

Vous pouvez ajouter de nouvelles clés de cette identité et de les supprimer à votre volonté.

# The admin can add multiple keys for the same userid.
try "
ADDOK u5 admin u4\@example.org
ADDOK u5 admin u4\@example.org\@home
ADDOK u5 admin laptop/u4\@example.org
ADDOK u5 admin laptop/u4\@example.org\@home
";

3voto

michael_n Points 980

J'ai réorganisé mon gitolite admin keydir une couple de fois, et je n'ai pas encore vraiment décidé ce qui est la meilleure façon d'organiser les choses. Si vous pouvez coller à certaines conventions, les choses vont certainement être plus facile, mais ce n'est pas toujours possible. Heureusement gitolite est flexible.

En général, je préfère ne pas utiliser un seul répertoire contenant toutes les clés, en s'appuyant uniquement sur la convention de nommage "user@host.pub" pour garder les choses en ordre. (Cela semble être impliqué dans d'autres réponses?) Qui peut devenir source de confusion si vous avez plusieurs clés sur plusieurs hôtes et plusieurs noms d'utilisateur pour un seul "réel" de l'utilisateur (ou le même nom d'utilisateur pour deux utilisateurs différents sur deux hôtes différents). À l'aide des sous-répertoires permet d'organiser les choses, à l'aide d'un arbre de profondeur, mais en général, je viens d'utiliser un niveau.

Les deux principales options (ou même une combinaison de ceux-ci):

  1. un répertoire par "réel" de l'utilisateur, chaque répertoire contenant plusieurs clés pour cet utilisateur (par exemple, généralement un par l'hôte).
  2. un répertoire par (autorisé) de l'hôte, avec une (ou plusieurs) des clés par l'utilisateur qui sera de travail sur l'hôte. Bien que l'utilisateur pourrait copie de sa clé privée à un autre l'hôte, qui est (dans mon cas) découragé. Dans tous les cas, les sous-répertoires sont nommés d'après l'hôte où la clé a été générés à l'origine.

Comme un exemple d'un sous-répertoire par utilisateur (option #1):

conf
 |--gitolite.conf
keydir
 |--john.doe
 |    |--john@host1.pub
 |    |--john@host2.pub
 |    |--jdoe@host2.pub
 |    |--john.doe@company.com.pub
 |    |--tester@temp-vm43.pub
 |--will.rodgers
 |    |--wrodgers.pub
 |    |--wrodg1234@host2.pub
 |    |--will.rodgers@company.com.pub
 |    |--tester@temp-vm22.pub
 |...etc

Notez que:

  • les noms de répertoire (sous keydir) n'est pas question pour gitolite.
  • le nom du répertoire doit être universellement unique, comme une adresse de courriel ou une autre IDENTIFIANT global. Cela permet de "git" utilisateurs avec potentiellement le même nom d'utilisateur sur des hôtes différents.
  • une clé comme "utilisateur.pub" ou "user@email.com.pub" peut être partagée par un utilisateur à travers plusieurs hôtes; cela peut être découragé basé sur la politique, cependant.

En général je préfère et de n'utiliser l'option #1, parsemé de quelques exemples de l'option n ° 2. Option #2 peut simplifier l'intranet de l'automatisation si vous avez des serveurs qui vont et viennent (peut-être le provisionnement et le recyclage VM) et que vous voulez maintenir les choses au niveau de l'hôte plutôt qu'au niveau de l'utilisateur, de sorte que vous pouvez (par exemple) nettoyer facilement obsolètes sur les touches d'un déclassement de l'hôte (par exemple, à court terme test de VM).

La bonne chose à propos de gitolite est que la (ré-)organisation de l'keydir répertoire n'a pas d'impact sur les utilisateurs. Mais vous pouvez facilement (par inadvertance) verrouiller vos utilisateurs (ou vous-même) si vous ne faites pas attention.

1voto

Brian Campbell Points 101107

Vous installez gitolite sous un utilisateur sur le serveur; généralement, git , et dans votre chaîne de connexion SSH, vous utilisez toujours explicitement git@servername pour vous connecter au compte utilisateur Git. Gitolite examinera ensuite la clé publique que vous proposez, la trouvera dans votre configuration et vous traitera comme si vous étiez l'utilisateur associé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X