# SSH-sleutels toevoegen aan een site

Source: https://support.kapsulehost.com/nl-nl/adding-ssh-keys

SSH-toegang tot een KapsuleHost-site is uitsluitend sleutelgebaseerd, dus voordat je een shell of een SFTP-sessie kunt openen, moet je een publieke sleutel registreren bij de site in KPanel. Deze handleiding behandelt waar je dat vindt, hoe je een sleutel toevoegt die je al hebt, hoe je KapsuleHost er een voor je laat genereren, en hoe je een sleutel intrekt die je niet langer vertrouwt.

## Waar de Pagina Met SSH-sleutels Zich Bevindt

Open **Websites**, klik op de site, open vervolgens de groep **Instellingen** in het linkermenu van de site en kies **SSH-sleutels**. De pagina heet **SSH-toegang** en bevat twee dingen: de verbindingsgegevens voor deze site, en de lijst met publieke sleutels die op dit moment geautoriseerd zijn om ze te gebruiken.

Er is geen SSH-item op het hoofdniveau in de hoofdzijbalk. Sleutels gelden per site, dus een sleutel die je hier toevoegt, authenticeert alleen bij deze site. Als je meerdere sites beheert, heeft elke site zijn eigen vermelding nodig, zelfs als het om dezelfde sleutel op je laptop gaat.

![De pagina SSH access voor een site in KPanel, met de verbindingsgegevens en de lijst met geautoriseerde publieke sleutels](https://support.kapsulehost.com/help/screenshots/adding-ssh-keys.2a53d172.webp)

> **Note:** Voor het toevoegen of intrekken van een sleutel is de rechtenmachtiging **sites:write** vereist. Als je een teamaccount hebt met een alleen-lezen rol, zijn de knop **Sleutel toevoegen** en het intrekpictogram verborgen. Vraag een accounteigenaar of beheerder om de wijziging door te voeren.

## Verbindingsgegevens

De kaart **Verbindingsgegevens** bovenaan de pagina toont alles wat je client nodig heeft:

| Veld | Wat het is |
|---|---|
| Host | De hostnaam waarmee verbinding wordt gemaakt |
| Poort | De SSH-poort voor deze site |
| Gebruikersnaam | De systeemgebruiker waaronder je site draait |
| SSH | Een kant-en-klaar `ssh`-commando voor deze site |
| SFTP | Een kant-en-klaar `sftp`-commando voor deze site |

Elke rij heeft een kopieerknop, en de SSH- en SFTP-rijen kopiëren het hele commando in plaats van alleen de waarde, zodat je het direct in een terminal kunt plakken. Gebruik die twee in plaats van het commando zelf te typen: ze bevatten al de juiste gebruiker, host en poort.

Als de kaart helemaal niet verschijnt, is de aanmaak van de shell-gebruiker voor de site nog niet voltooid. De API geeft in dat geval een eenvoudige foutmelding **Site heeft geen SSH-gebruiker**. Wacht tot de statusindicator van de site **Active** weergeeft en laad de pagina opnieuw.

## Een Sleutel Toevoegen Die Je Al Hebt

De meeste mensen hebben al een sleutelpaar op hun machine staan. Voeg hier de publieke helft toe.

1. Toon op je eigen computer je publieke sleutel. Op macOS en Linux is dat meestal `cat ~/.ssh/id_ed25519.pub`, of `cat ~/.ssh/id_rsa.pub` voor een oudere RSA-sleutel. Op Windows met OpenSSH is dat `type %USERPROFILE%\.ssh\id_ed25519.pub`.
2. Kopieer de hele regel, beginnend met `ssh-ed25519`, `ssh-rsa` of `ecdsa-sha2-nistp256`.
3. Klik in KPanel op **Sleutel toevoegen**.
4. Vul iets herkenbaars in het veld **Label** in, bijvoorbeeld de naam van de machine waarop de sleutel staat.
5. Plak de publieke sleutel in het tweede veld.
6. Klik op **Sleutel toevoegen**.

De sleutel verschijnt meteen in de lijst **Authorised keys**, met de bijbehorende vingerafdruk onder het label. Je kunt direct verbinding maken.

KapsuleHost stuurt bovendien telkens wanneer een sleutel wordt toegevoegd een e-mail naar het accountadres, met vermelding van het label, de vingerafdruk en de site. Die mail is bewust zo ingericht: SSH-toegang vereist een hoog vertrouwensniveau, dus als er een sleutel verschijnt die jij niet hebt toegevoegd, trek die dan direct in en wijzig meteen je wachtwoord.

> **Warning:** Plak altijd alleen het bestand `.pub`. Een persoonlijke sleutel heeft geen extensie `.pub` en begint met een regel zoals `-----BEGIN OPENSSH PRIVATE KEY-----`. Als je dat plakt, is het je persoonlijke sleutel, en die moet opnieuw worden gegenereerd in plaats van hergebruikt.

### Als Je Nog Geen Sleutel Hebt

Genereer er lokaal een met `ssh-keygen -t ed25519 -C "your-label"`, accepteer de standaard bestandslocatie en stel desgevraagd een wachtwoordzin in. Dat levert `~/.ssh/id_ed25519` op (houd die privé) en `~/.ssh/id_ed25519.pub` (plak die laatste).

## KapsuleHost Het Sleutelpaar Laten Genereren

Als je liever geen `ssh-keygen` uitvoert, kan KPanel het paar voor je aanmaken.

1. Klik op **Sleutel toevoegen**.
2. Vul het veld **Label** in. Laat het vak voor de publieke sleutel leeg.
3. Klik op **Sleutelpaar genereren**.

KapsuleHost maakt een Ed25519-paar aan, installeert de publieke helft bij de site en toont een groene melding: **Sleutelpaar gegenereerd: download nu de persoonlijke sleutel**. Klik op **.pem downloaden** om de persoonlijke sleutel op te slaan. Het bestand krijgt de naam van het door jou gekozen label.

> **Important:** De persoonlijke sleutel wordt slechts één keer getoond. De melding vermeldt dit duidelijk: dit is het enige moment waarop je hem kunt downloaden. KapsuleHost bewaart geen kopie die je later kunt ophalen. Als je de melding sluit zonder te downloaden, trek dan de sleutel in en genereer een nieuw paar.

Een gegenereerde sleutel heeft geen wachtwoordzin, waardoor hij bruikbaar is vanuit een script zonder dat er iets wordt gevraagd. Dat betekent ook dat het bestand zelf de volledige inloggegevens vormt. Als je een wachtwoordzin wilt, genereer het paar dan zelf met `ssh-keygen` en plak de publieke helft.

Verplaats het bestand na het downloaden naar een logische locatie en verscherp de bestandsrechten, want SSH weigert een persoonlijke sleutel te gebruiken die voor iedereen leesbaar is:

```sh
mv ~/Downloads/my-laptop_id_ed25519.pem ~/.ssh/kapsule-mysite.pem
chmod 600 ~/.ssh/kapsule-mysite.pem
ssh -i ~/.ssh/kapsule-mysite.pem <username>@<host> -p <port>
```

Vervang de gebruikersnaam, host en poort door de gegevens uit de kaart **Verbindingsgegevens**.

## De Lijst Met Geautoriseerde Sleutels Lezen

Elke rij in **Authorised keys** toont:

- Het label dat je aan de sleutel hebt gegeven.
- De vingerafdruk van de sleutel, waarmee je twee sleutels met vergelijkbare labels uit elkaar houdt.
- **Added** met de datum van registratie.
- **Laatst gebruikt** met de datum van de meest recente authenticatie, of **Nooit gebruikt** als er nog niet mee is geauthenticeerd.

De kolom **Laatst gebruikt** is de handigste bij een opschoning. Een sleutel die nooit is gebruikt, of al maanden niet meer, hoort meestal bij een laptop die is vervangen of een freelancer die is vertrokken.

## Een Sleutel Intrekken

Klik op het rode prullenbakpictogram bij de rij van de sleutel. KPanel vraagt om bevestiging met **SSH-sleutel intrekken?** en een melding dat de sleutel niet langer zal authenticeren bij deze site. Klik op **Revoke** om te voltooien.

Het intrekken wordt van kracht voor nieuwe verbindingen. Een SSH-sessie die al open staat, wordt niet door het intrekken van de sleutel beëindigd. Als je dus toegang ontneemt aan iemand die mogelijk nog verbonden is, trek dan de sleutel in en wijzig daarna alles wat diegene had kunnen meenemen: databasewachtwoorden, applicatiegeheimen en eventuele tokens die op de site zijn opgeslagen.

> **Tip:** Houd de sleutellijst kort. Eén sleutel per machine, gelabeld met de machinenaam, is veel makkelijker te controleren dan een stapel sleutels genaamd "key1", "nieuwe sleutel" en "tijdelijk".

## Probleemoplossing

**Permission denied (publickey).** De meest voorkomende oorzaak is dat je client een andere sleutel aanbiedt dan de sleutel die je hebt geregistreerd. Forceer de juiste met `ssh -i /path/to/private_key ...`, of controleer met `ssh -v` welke sleutels worden aangeboden.

**Connection refused of een timeout.** Controleer of je de poort gebruikt die vermeld staat bij **Verbindingsgegevens** en niet de standaardpoort 22. Kopieer het SSH-commando van de pagina in plaats van het zelf te typen.

**Bad permissions on the private key.** OpenSSH weigert een persoonlijke sleutel die door andere gebruikers gelezen kan worden. Voer `chmod 600` uit op het bestand.

**De sleutel werkt voor SSH maar niet voor SFTP.** Ze gebruiken dezelfde inloggegevens, dus dit ligt vrijwel altijd aan de client en niet aan de sleutel. Gebruik het SFTP-commando dat van de pagina is gekopieerd, dat al de juiste poort bevat.

## Volgende Stappen

- [Bestanden Uploaden Met SFTP](https://support.kapsulehost.com/nl-nl/sftp-access) behandelt het bestandsoverdrachtgedeelte van dezelfde inloggegevens.
- [Verbinding Maken Met Je Database Via een SSH-tunnel](https://support.kapsulehost.com/nl-nl/database-ssh-tunnel) gebruikt de sleutel die je zojuist hebt toegevoegd om MySQL te bereiken vanaf een desktopclient.
- [Activiteitenlogboek van de Site](https://support.kapsulehost.com/nl-nl/site-activity-log) registreert elke sleutel die je toevoegt, zodat je later kunt nagaan wie wat heeft toegevoegd en wanneer.
