J'ai un crochet Git update
qui vérifie si la branche en cours de mise à jour est maître et si oui, envoie un message d'erreur au client. Je voudrais maintenant faire en sorte que seulement push
es à maîtriser que je vais faire passer.Comment déterminer l'empreinte SSH du client pour l'utiliser dans le crochet Git
Actuellement, j'ai deux clés SSH ajoutées au authorized_keys
d'un utilisateur git
. L'un d'eux est à moi, et j'ai l'intention d'en ajouter d'autres. Je lis here:
Si vous avez permis à chacun de se connecter avec un seul utilisateur (comme « git ») via une authentification par clé publique, vous devrez peut-être donner à cet utilisateur une enveloppe shell qui détermine quel utilisateur se connecte basé sur la clé publique et définir une variable d'environnement en conséquence.
Mais ils n'expliquent pas comment faire cela, et je ne trouve aucun exemple de la façon de faire une telle chose. Comment déterminez-vous l'empreinte digitale de la machine qui passe en SSH? J'ai également envisagé de créer un compte d'utilisateur séparé "git-admin", mais les dépôts nus sont dans le répertoire/home/git, et je ne pouvais pas penser à la façon d'amener les deux utilisateurs au même référentiel avec la même URL. Je ne peux pas faire que les utilisateurs partagent le même répertoire de base car alors le authorized_keys
s'appliquerait aux deux, et je n'aurais aucun moyen de définir une variable d'environnement uniquement pour l'un et pas l'autre.
Mon serveur fonctionne sur FreeBSD.
Avez-vous des idées sur la façon d'atteindre ce que j'essaie de faire?
Il a travaillé :) Je ne aurais jamais trouvé où cette fonctionnalité aurait pu être accessible à partir! Je vous remercie! – papiro
Je tiens à mentionner que je suis allé avec l'option 'environment =', dans laquelle j'ai défini la variable d'environnement USER au nom du propriétaire de la clé. – papiro
Bien fait. Cela devrait fonctionner. – VonC