|
|
|
## SSH+keys in plaats van HTTPs+passwords
|
|
|
|
|
|
|
|
NB: sinds september 2017 is alleen git over ssh nog toegestaan!
|
|
|
|
|
|
|
|
Elke keer je password gebruiken is lastig. En https heeft soms moeite met grote bestanden. Met SSH keys gaat het een stuk makkelijker. De URL van de remote repo wijzigt dan van
|
|
|
|
`https://gitlab.fdmci.hva.nl/userspace/mooiproject.git` in:
|
|
|
|
`git@gitlab.fdmci.hva.nl:userspace/mooiproject.git`
|
|
|
|
Let ook op de plek van de `:`
|
|
|
|
|
|
|
|
Probeer eens in een terminal (git bash bijv.):
|
|
|
|
`git clone git@gitlab.dmci.hva.nl:info/git4bit.git` (plak/paste gaat met shift+insert)
|
|
|
|
|
|
|
|
Je krijgt dan als vraag:
|
|
|
|
`git@gitlab.dmci.hva.nl's password:`
|
|
|
|
|
|
|
|
en dat betekent dat er iets mis is met je SSH keys</ul>. Dat klopt want die heb je nog niet. Dat is in drie stappen geregeld:
|
|
|
|
|
|
|
|
1. maak een private en public key aan met commando (in git-bash, mac terminal of sourcetree>action>terminal):
|
|
|
|
`ssh-keygen`
|
|
|
|
en druk een paar keer op enter om de defaults te accepteren. Passphrase kan leeg blijven. Je hebt nu een private en public key bestand gekregen in de map *C:\Users\jouwnaam\\.ssh* map. Daar staan twee files: id_rsa en id_rsa.pub.
|
|
|
|
2. kopieer de public key naar je klembord, bijvoorbeeld met:
|
|
|
|
`clip < ~/.ssh/id_rsa.pub` let op: kleiner-dan-teken spatie tilde slash punt (of gebruik copy en shift+insert)
|
|
|
|
3. zodat je het met ctrl+v kan plakken op gitlab in je Profile_Settings>SSH_Keys>ADD_SSH_KEY (zie plaatje).
|
|
|
|
|
|
|
|
![alt text][ssh_keys]
|
|
|
|
[ssh_keys]: https://gitlab.dmci.hva.nl/info/git4bit/raw/master/gitlab_ssh_keys.png "Gitlab SSH Keys"
|
|
|
|
De naam van de key die je kunt invoeren is voor jezelf een geheugensteuntje - gebruik bijvoorbeeld de naam van de laptop waar de key bij hoort.
|
|
|
|
En nu kun je wel verbinden via git@gitlab.dmci.hva.nl vanaf deze pc waar je private key staat. Eventueel maak je op elke pc die je vertrouwt een private+public key aan. In Gitlab kun je ze makkelijk toevoegen en verwijderen.
|
|
|
|
## Testen van je key
|
|
|
|
`ssh -T git@gitlab.fdmci.hva.nl`
|
|
|
|
is het commando dat test of je met SSH en je private key op je pc en de public key op gitlab kunt verbinden met gitlab. Als het goed is krijg je een welkomstboodschap te zien en als het niet goed is wordt er om het wachtwoord van git gevraagd. Dan heb je misschien de verkeerde key geplakt of is er iets anders mis. Als het helemaal niet lukt kun je altijd weer terugvallen op de http of https verbinding.
|
|
|
|
|
|
|
|
#### Waarom keys
|
|
|
|
Keys zijn handig. Je houdt je password (hva-id in dit geval) gescheiden van de toepassing. En als je je private key kwijt bent gooi je het slot (de public key op gitlab) gewoon weg en maak je een nieuw setje aan. Eventueel kun je je keys nog van een extra wachtwoord voorzien zodat zelfs een gestolen private key voor een ander waardeloos is.
|
|
|
|
Bedenk wel dat er altijd TWEE sleutels zijn: de private key heeft een bijpassende public key. Als je gitlab geen passende public key van jou heeft dan kun je niet verbinden. Maak dan eventueel even weer een nieuw setje aan voor de pc waar je op werkt. Gooi ook afentoe public keys van de server af als je niet meer weet waar de bijbehorende private key staat.
|
|
|
|
|
|
|
|
## Meer info
|
|
|
|
* https://help.github.com/articles/generating-ssh-keys is de github handleiding. Wijzig github in gitlab als je deze volgt.
|
|
|
|
* Het git boek: http://git-scm.com/book
|
|
|
|
|
|
|
|
|