Als je met Stash/Git werkt kun je op twee manieren authenticeren:

  1. HTTP
  2. SSH

Het is normaal om voor de eerste connectie HTTP te gebruiken, het heeft echter twee beperkingen:

  1. De push wordt over HTTP vertaald naar een POST en de POST-body-grootte is gelimiteerd, daarnaast kan er een HTTP-timeout optreden als een push teveel content bevat.
  2. Als je in Jenkins een connectie naar je Git repository wilt hebben moet je daar je eigen credentials achter laten.

Het is dus raadzaam om SSH te gebruiken zodat je geen last hebt van de HTTP-limiet en niet je eigen username/wachtwoord in Jenkins hoeft te stoppen.

Maak een RSA-key aan (twee delen: public en private key, dat doe je met ssh-keygen of PuTTYgen) en bewaar je private key in een .ssh map die je in je profiel-folder zet. Zorg dat je map en je private key alleen leesbaar zijn voor jouw user, dat doe je in linux, mac of git-bash:

chmod 700 .ssh
chmod 600 .ssh/naam-van-je-private-key

SSH maakt gebruik van het public/private-key systeem waarbij je je private key zelf houdt - vandaar die permissies - en je public key registreert bij je persoonlijke profiel in Stash (zie de Stash documentatie en voor Windows gebruikers eventueel Installing Git on Windows of Configuring Git SSH on Windows).

Daarmee lossen we beperking 1 op maar dan moet je nog je eigen key-set aan Jenkins geven, gelukkig is dat niet nodig: Jenkins heeft een key waarmee automatische leestoegang is tot alle OOSE-repositories, je vindt deze in Jenkins terug onder de naam "mdkr" (toegegeven, die had beter gekund):

Je gebruikt in Jenkins dus elke keer dezelfde key (mdkr), in je project gebruik je je eigen key om snel en veilig te kunnen werken. 

 

 

  • No labels