J'essaie de configurer un dépôt git partagé via ssh, en copiant les clés publiques des utilisateurs sur les touches authorized_keys. Je voudrais vraiment que le "nom d'utilisateur" de la clé ssh fasse partie de l'historique de commit dans le repo (pour que l'utilisateur "joe" ne puisse pas simplement donner son nom à "kate" - nous avons besoin d'une sorte de responsabilité) . Est-ce qu'il y a un moyen de faire ça ?Puis-je associer le nom d'utilisateur ssh avec commit avec git sur ssh?
Répondre
Simplement, non, il n'y a aucun moyen. La raison en est que les détails de l'auteur et du committer sont définis lors de la validation, ce qui arrive généralement localement. Un git push
se produit ultérieurement pour transférer les validations existantes vers le référentiel distant. Comme les validations sont déjà effectuées et référencées par le hachage SHA1, elles ne peuvent pas être modifiées lors d'une opération push. Ce que vous pouvez faire est d'avoir un hook de pré-réception ou de mise à jour qui empêche les utilisateurs de pousser des validations qu'ils n'ont pas créées, mais cela pourrait empêcher beaucoup d'utilisations légitimes. Vous pouvez trouver que la confiance de vos utilisateurs est la seule option raisonnable.
Cela ne fonctionnera pas avec la nature décentralisée de git. Imaginez joe fusionne branche de développement de kate. Il y a commits de Joe et kate dans son clone local maintenant:
* joe: Merge branch 'kate'
|\
| * joe: update foo
* | kate: fix test
* | kate: add test
|/
* joe: initial commit
Si Joe pousse au dépôt central maintenant, et vous font respecter le nom d'utilisateur, commits de kate seraient attribués à joe.
Sur Git-hub, chaque utilisateur dispose de son propre référentiel git côté serveur. Peut-être que vous pourriez permettre aux utilisateurs de pousser seulement là-bas, et vous auriez un admin tirant dans le référentiel "officiel"? De cette façon, il y a une traçabilité et une responsabilité complètes. Vous aurez également un modérateur avec la responsabilité ultime.
C'est une bonne suggestion, mais nous ne voulons vraiment pas un seul administrateur car tous les committers sont considérés comme ayant la même confiance. Un seul admin serait juste au-dessus, que nous évitons comme la peste ... – krosenvold
- 1. Git sur ssh sans Git être installé sur le serveur
- 2. Problèmes d'URL Git pour SSH
- 3. SSH - ksh: git: non trouvé
- 4. svn checkout + ssh avec loginname
- 5. Utiliser git avec SSH et (parfois) tire-bouchon
- 6. SSH automatiser le téléchargement ftp
- 7. VisualVM sur ssh
- 8. Impossible de récupérer via SSH
- 9. ssh-keygen avec utilisateur différent pour subversion
- 10. Comment ignorer le nom d'hôte dans le tunnel SSH
- 11. Problème avec l'appel rsync + ssh de Java sur Windows
- 12. Comment arrêter git via ssh sur Windows de résoudre le mauvais chemin?
- 13. Parallèle SSH en Python
- 14. SSH, écran et XDISPLAY
- 15. ids ssh et fenêtre
- 16. Module Python SSH/SFTP?
- 17. question svn/ssh dans windows
- 18. Moniteur de tunnel SSH inversé
- 19. Comment puis-je ssh dans un hôte distant avec Perl?
- 20. Construire sur commit avec subversion
- 21. L'utilisation de pseudo tty avec ssh entraîne un avertissement
- 22. Qu'est-ce que le transfert SSH?
- 23. gltail "Manquant gem net-ssh"
- 24. git find fat commit
- 25. NetBeans + Mercurial + SSH = Pousser/Pousser sans fin
- 26. Créer une clé ssh secondaire sans mot de passe pour configurer un tunnel ssh
- 27. Contrôle simultané de plusieurs fichiers journaux (sur SSH) sous Windows?
- 28. "Accès refusé" lors de la transmission vers un référentiel distant via SSH
- 29. git-svn dcommiter un seul commit git
- 30. Multiple "git add" avant "git commit"
Ainsi, si un utilisateur modifie son nom de committer/auteur et son adresse e-mail et pousse un code piraté à se déguiser en collègue, rien n'est prévu pour l'empêcher au niveau du repo nu? – pinkvoid