Ich habe einen Git update
Hook, der prüft, ob der Zweig, der aktualisiert wird, Master ist und wenn ja, sendet eine Fehlermeldung an den Client. Ich möchte es jetzt so machen, nur push
es zu meistern, die ich selbst machen werde.So ermitteln Sie den SSH-Fingerabdruck des Clients für die Verwendung in Git-Hook
Momentan habe ich zwei SSH-Schlüssel zum authorized_keys
eines Benutzers git
hinzugefügt. Einer von ihnen gehört mir, und ich beabsichtige, andere hinzuzufügen. Ich las here:
Wenn Sie alle erlaubt haben mit einem einzigen Benutzer (zB „git“) über Public-Key-Authentifizierung zu verbinden, können Sie, dass Benutzer eine Shell-Wrapper geben müssen, die die Benutzer bestimmt verbindet basierend auf dem öffentlichen Schlüssel, und setzen Sie eine Umgebungsvariable entsprechend.
Aber sie erklären nicht, wie man das macht, und ich kann keine Beispiele finden, wie man so etwas macht. Wie ermitteln Sie den Fingerabdruck der Maschine, in der sich die SSH befindet? Ich habe auch überlegt, ein separates "git-admin" Benutzerkonto zu erstellen, aber die blanken Repos befinden sich im Verzeichnis/home/git, und ich konnte nicht darüber nachdenken, wie beide Benutzer dasselbe Repo mit derselben URL aufrufen. Ich kann nicht die Benutzer das gleiche Home-Verzeichnis teilen, weil dann die authorized_keys
für beide gelten würde, und ich hätte keine Möglichkeit, eine Umgebungsvariable nur für die eine und nicht die andere festzulegen.
Mein Server läuft unter FreeBSD.
Irgendwelche Gedanken darüber, wie ich erreichen kann, was ich versuche zu tun?
Es funktionierte :) Ich würde nie herausgefunden habe, wo diese Funktion aus zugänglich gewesen ist konnte! Vielen Dank! – papiro
Ich möchte erwähnen, dass ich tatsächlich mit der 'environment =' Option ging, in der ich die USER-Umgebungsvariable auf den Namen des Besitzers des Schlüssels setzte. – papiro
Schön gemacht. Das sollte funktionieren. – VonC