Gitlab, mehrere Accounts mit demselben ssh-key

TL;DR: Geht nicht ūüôā

Aus¬≠f√ľhr¬≠li¬≠che Geschich¬≠te:
Der Sohn m√∂ch¬≠te ger¬≠ne eine (sta¬≠ti¬≠sche) Web¬≠site mit git ver¬≠sio¬≠nie¬≠ren, was ich nat√ľr¬≠lich unter¬≠st√ľt¬≠ze. Wir haben Git¬≠lab, was liegt da n√§her als Git¬≠lab Pages? Habe ich nicht hin¬≠be¬≠kom¬≠men, viel¬≠leicht, weil Git¬≠lab bei mir hin¬≠ter einem rever¬≠sen Pro¬≠xy (Apa¬≠che) l√§uft.
Dann dach­te ich, ich kön­ne doch einen post-recei­ve-hook ver­wen­den, der nach erfolg­rei­chem push das Repo­si­to­ry in die Docu­men­tRoot des Web­ser­vers pullt.
Nach ein paar Fal¬≠len (die gr√∂√ü¬≠te: es mu√ü alles als User git lau¬≠fen, also mu√ü git auch einen ssh-key haben und der mu√ü beim Sohn im Git¬≠lab bekannt sein) ging es. √Ąnde¬≠run¬≠gen ins git¬≠lab pushen, und instantan sind sie auf der Web¬≠site. Sehr sch√∂n!

Nun habe auch ich eine sta­ti­sche Sei­te, und wenn das mit git beim Sohn geht, so muß es auch beim Vater gehen!
Also nach dem¬≠sel¬≠ben Sche¬≠ma vor¬≠ge¬≠gan¬≠gen ‚ÄĒ doch ach: ich kann den pub¬≠key von git nicht zu mei¬≠nem Account hin¬≠zu¬≠f√ľ¬≠gen:

Der Key ist schon beim Sohn und kann des­we­gen nicht auch beim Vater sein (Sohn ent­er­ben?)
Gro­ßes Kino, und nun?
Der Hook, der beim Sohn funk­tio­niert:

#!/bin/sh
cd /zroot/webroot/com/sokoll/sohn
git pull

Beim Vater funk­tio­niert nicht:

#!/bin/sh
cd /zroot/webroot/com/sokoll/vater
git pull

Weil eben der pub¬≠key nicht vor¬≠han¬≠den ist und auch nicht bei Vater hoch¬≠ge¬≠la¬≠den wer¬≠den kann. Man m√ľ√ü¬≠te dem git pull sagen k√∂n¬≠nen, wel¬≠cher key genom¬≠men wer¬≠den soll, aber das geht nicht. Oder doch?
Doch, es geht, aber nicht direkt, son¬≠dern √ľber /var/opt/gitlab/.ssh/config.

# Sohn
Host sohn.gitlab.sokoll.com
  HostName gitlab.sokoll.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_rsa-sohn
# Vater
Host vater.gitlab.sokoll.com
  HostName gitlab.sokoll.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_rsa-vater

Nat√ľr¬≠lich m√ľs¬≠sen dann die remo¬≠tes ge√§n¬≠dert wer¬≠den:

Sohn:

origin  git@sohn.gitlab.sokoll.com:sohn/sohn-repo.git (fetch)
origin  git@sohn.gitlab.sokoll.com:sohn/sohn-repo.git (push)

Vater:

origin  git@vater.gitlab.sokoll.com:vater/vater-repo.git (fetch)
origin  git@vater.gitlab.sokoll.com:vater/vater-repo.git (push)

Und schon nimmt git pro Repo­si­to­ry einen ande­ren Key.


Und w√§h¬≠rend ich das schrei¬≠be ler¬≠ne ich, da√ü das alles Quatsch ist und da√ü man ja auch lokal clonen/pullen kannūü§¶‚Äć‚ôāÔłŹ.
Viel¬≠leicht n√ľtzt es ja, wenn jemand meh¬≠re¬≠re Accounts auf einer Git¬≠lab-Instanz hat. Kei¬≠ne Ahnung, wie das bei Git¬≠hub ist.

0

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.