Bij Antagonist is de mogelijkheid geïntroduceerd om via SSH verbinding te maken met een webhostingpakket. Hiermee is het mogelijk om als de systeemgebruiker die bij jouw hostingpakket hoort commando’s rechtstreeks op de server uit te voeren. Dit kan bijvoorbeeld gebruikt worden voor simpele beheertaken, zoals het verplaatsen, hernoemen of aanpassen van bestanden, of bijvoorbeeld de uitrol en het beheer van websites of applicaties aan de hand van git.
Voor welke hostingpakketten is SSH beschikbaar?
De mogelijkheid om door middel van SSH te verbinden is toegevoegd aan de pakketten Slim, Plus en Pro. Als je dus een van deze pakketten afneemt, kan je direct gebruik maken van Antagonist SSH.
Voor resellers is SSH niet automatisch ingeschakeld. Echter begrijpen we dat hier mogelijk vraag naar is. Ben je dus een reseller bij Antagonist en wil je graag SSH gebruiken, dan kan je hiervoor contact opnemen met support@antagonist.nl. We kunnen dit dan op verzoek inschakelen.
Vereisten
Om bij Antagonist SSH te kunnen gebruiken met een webhostingpakket zijn een tweetal zaken vereist. Zo moet je gebruik maken van een SSH client. Deze moet verbinden door middel van een geldige cryptografische sleutel.
SSH client
Er is een breed scala aan beschikbare clients. In principe zit hier geen restrictie op. Veelgebruikte clients zijn bijvoorbeeld PuTTY (Windows) of de standaard ingebouwde SSH-functionaliteit in de terminal voor macOS en Linux. In deze documentatie worden PuTTY (hier te downloaden) en de terminal voor macOS / Linux als voorbeeld gehanteerd. Beide methoden leggen we hieronder uit.
Private / public key genereren
Om via SSH te kunnen verbinden, moet de verbinding worden versleuteld. Dit gebeurt aan de hand van een private / public key paar, waarvan de public key op de server bij Antagonist wordt toegevoegd. De private key blijft altijd lokaal opgeslagen en wordt door de SSH client gebruikt. Het is belangrijk dat de private key ook echt privé blijft; deel deze nooit en sla het veilig op.
De private key wordt 'private' genoemd, omdat het belangrijk is dat je deze strikt privé houdt. De veiligheid van de versleuteling berust op het feit dat deze veilig wordt opgeslagen op jouw lokale apparaat, en in geen geval wordt gedeeld met anderen. Ga hier dus met gepaste zorgvuldigheid mee om.
Windows
1. In Windows kan je cryptografische sleutels generen met PuTTYgen - de key generator die bij PuTTY wordt geleverd. PuTTY en PuTTYgen zijn hier te downloaden. Start, wanneer je deze hebt gedownload, het PuTTYgen programma.
2. Kies de parameters voor het aan te maken key pair, bijvoorbeeld RSA en 4096 bits. Vervolgens zal de PuTTY client je vragen om de muis willekeurig over het venster te bewegen, om te helpen willekeur te genereren voor het aanmaken van de sleutels.
3. Wanneer de keys zijn aangemaakt, verschijnen deze in het venster. Vul vervolgens een sterke, zelfgekozen, passphrase en eventueel een comment in.
Het is voor de veiligheid belangrijk dat je hier een sterke passphrase kiest. Doe je dit niet, dan kan een eventuele gelekte private key kwaadwillenden tot jouw hostingomgeving toegang geven. Door een goede passphrase in te stellen, is toegang enkel mogelijk met zowel de private key als de passphrase.
4. Ten slotte kies je de optie 'Save private key'. Kies een goede locatie om deze te bewaren. De private key is nu opgeslagen.
De public key die hierbij hoort kan je uit het PuTTYgen scherm kopiëren; deze heb je bij latere stappen nodig om SSH toegang mogelijk te maken vanuit DirectAdmin.
Indien gewenst kan je ook de public key opslaan, met de optie 'Save public key', of je kan deze later opnieuw genereren door de bestaande private key in te laden met de optie 'Load'.
5. Voeg daarna de public key toe in DirectAdmin.
Verbinden met PuTTY
1. Verbinden via PuTTY kent een aantal stappen. Allereerst open je de PuTTY client. Heb je deze nog niet, dan kan je deze hier downloaden. Vervolgens krijg je de volgende interface:
2. Links in dit scherm zie je onder 'Category' een menu met aantal instellingen voor de verbinding. We hebben hier eigenlijk maar drie opties nodig. De eerste is direct de bovenste, 'Session'.
3. Vul hier bij 'Host Name (or IP address)' jouw domeinnaam in. Mocht jouw domeinnaam naar een externe locatie verwijzen, maar wil je toch via SSH met het hostingpakket verbinden, dan kan je ook overwegen om via DNS-management een subdomein aan te maken, en deze, bijvoorbeeld ssh.domeinnaam.nl, als hostname te gebruiken. De poort kan je op 22 laten staan. Ga vervolgens via het linker-menu onder 'Connection' naar 'Data'.
4. In het 'Data' scherm vul je vervolgens onder 'Login details' jouw gebruikersnaam in. Dit is dezelfde gebruikersnaam van jouw pakket waarmee je via FTP of DirectAdmin inlogt, bijvoorbeeld 'deb12345'.
De volgende stap is het opgeven van de private key die we eerder hebben gegenereerd, en waarvan de public key in DirectAdmin is toegevoegd. Dit gaat door in het linkermenu de optie 'SSH' uit te vouwen, en vervolgens naar 'Auth' - authenticatie.
5. Hier kan je bij het derde blok, 'Authentication parameters', de 'Browse'-knop kiezen, en vervolgens zoek je de private key op die je eerder met PuTTYgen hebt gegenereerd. Door deze te selecteren zal PuTTY de betreffende key gebruiken voor het verbinden.
6. De laatste handeling is het opslaan van de sessie, zodat je deze bij herhaald gebruik gemakkelijk kunt herstarten. Dit doe je door terug te gaan naar het eerste menu-item, 'Session'.
Hier vul je onder 'Saved Sessions' een zelf gekozen naam in voor de sessie, bijvoorbeeld 'Antagonist deb1235 SSH', en vervolgens klik je op 'Save' om de sessie op te slaan.
7. Je kunt nu de verbinding starten, door in PuTTY op 'Open' te klikken. Vul de gekozen passphase in.
macOS en/of Linux
1. Op macOS en Linux kan je de SSH key rechtstreeks via de command line genereren. Hiervoor kan je bijvoorbeeld het SSH-keygen commando gebruiken. Open hiervoor een terminal, en gebruik het volgende commando:
$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/antagonist-ssh
2. Het SSH-keygen commando zal vragen om een 'passphrase'. Kies hiervoor een sterk wachtwoord.
Het is voor de veiligheid belangrijk dat je hier een sterke passphrase instelt. Doe je dit niet, dan kan een eventuele gelekte private key kwaadwillenden tot jouw hostingomgeving toegang geven. Door een goede passphrase in te stellen, is toegang enkel mogelijk met zowel de private key als de passphrase.
3. Vervolgens kan je de gegenereerde public key opvragen in diezelfde terminal:
$ cat ~/.ssh/antagonist-ssh.pub
4. Deze public key kan je kopiëren; deze heb je bij latere stappen nodig. Je kunt nu de public key toevoegen in DirectAdmin.
Verbinden via de terminal
Het opzetten van een SSH-verbinding via de Terminal van macOS of Linux is vrij eenvoudig. Dit kan aan de hand van het 'ssh' commando, waarbij je de eerder gegenereerde private key opgeeft voor de authenticatie. Het volledige commando heeft hierbij de vorm:
$ ssh -i <padnaarprivatekey> <username>@<hostname>
Wanneer jouw gebruikersnaam bijvoorbeeld deb12345 is, jouw domein 'jouwdomeinnaam.nl', en je hebt de private key zoals in het eerdere voorbeeld opgeslagen als ~/.ssh/antagonist-ssh, dan wordt het volledige commando:
$ ssh -i ~/.ssh/antagonist-ssh deb12345@jouwdomeinnaam.nl
Voer dit commando uit, accepteer de fingerprint van de server, en geef de door jou gekozen passphrase op. Je bent nu succesvol ingelogd op het hostingpakket via SSH.
DirectAdmin
Om veilig via SSH te kunnen verbinden, moet je van de server toegang krijgen. Daarvoor moet deze jouw SSH client kunnen identificeren. Dit doen we door in DirectAdmin de gegenereerde public key toe te voegen.
Om een extra veiligheidslaag toe te voegen, geldt er voor SSH bij Antagonist een restrictie op basis van het gebruikte IP-adres. Het kan dus voorkomen dat je hiervoor opnieuw de toegang moet verlenen via DirectAdmin, wanneer jouw IP-adres wijzigt of wanneer je vanaf een andere locatie of netwerk verbindt.
1. Login op DirectAdmin.
2. Ga in het menu naar 'Extra Functies' → 'Antagonist SSH'.
3. Je krijgt dan de mogelijkheid om voor het betreffende account SSH-toegang in te stellen. Dit scherm ziet er als volgt uit.
Vul het relevante IP-adres in. Vervolgens kies je hoe lang de toegang geldig dient te zijn, geef je de key een naam, en plak je ten slotte de gegenereerde public key in het 'Key'-veld (let op: nooit de private key). Hieronder staan de verschillende velden tevens nader toegelicht.
IP:
Dit is het IP-adres waarvandaan de SSH client moet kunnen verbinden. Standaard is deze leeg, maar je kunt de optie 'Gebruik huidige IP' gebruiken om het IP in te vullen waarmee je ook op DirectAdmin bent ingelogd. Een enkele SSH-key kan vanaf meerdere IP-adressen te gebruiken zijn, zodat je bijvoorbeeld met eenzelfde apparaat zowel vanuit huis als vanaf werk via SSH kunt werken.
Verloopt over:
Dit is de verlooptijd van de toegang. SSH-toegang met een specifieke key / IP is geldig voor een vaste periode, variërend van 1 minuut tot maximaal 1 jaar. Wanneer een key komt te verlopen, wordt deze niet verwijderd, maar komt deze als 'verlopen' in het overzicht te staan onder 'Huidige toegang', en kan deze niet langer gebruikt worden om te verbinden.
Toevoegen aan:
Hiermee kun je aangeven aan welke bestaande key je het IP wilt koppelen, of je kunt 'Nieuwe key' kiezen om een geheel nieuwe key toe te voegen. Bij het kiezen van de optie 'Nieuwe Key' worden de volgende twee velden zichtbaar:
Key naam:
Hiermee kun je een naam geven aan de opgeslagen key, zodat je deze kunt herkennen. Denk hierbij bijvoorbeeld aan 'Laptop Henk' of 'Desktop werk' - een waarde waarmee je kunt herleiden bij welk apparaat / client de key hoort.
Key:
Dit is het veld waarin je de eerder bemachtigde public key invult. Hoe je aan een public key komt, wordt beschreven in het eerdere punt, 'Private / public key genereren'.
Heb je alle waarden naar wens ingesteld, dan kun je rechtsonder 'Voeg key en IP toe' kiezen. Hiermee worden de public key en het IP-adres opgeslagen, en vanaf dat moment is het opzetten van een SSH-verbinding mogelijk.
Meerdere IP-adressen aan een key toevoegen
Het is ook mogelijk om, zoals eerder beschreven, een nieuw IP aan een bestaande key toe te voegen. Bijvoorbeeld, om te zorgen dat je vanaf jouw laptop vanaf verschillende locaties via SSH kunt verbinden.
Dit is mogelijk door het nieuwe IP-adres in te vullen en vervolgens bij 'Voeg toe aan:' een bestaande key te selecteren. Klik ten slotte op 'Voeg IP toe aan key' om het IP-adres aan de bestaande public key toe te voegen.
Expiration en toegang ontzeggen
Het is mogelijk dat een door jou in DirectAdmin toegevoegde SSH-key is verlopen. Of dat je actief een key de toegang via SSH wilt ontzeggen. In beide gevallen kun je opgeslagen keys verwijderen. Ga hiervoor in DirectAdmin naar 'Extra Functies' → 'Antagonist SSH'.
Onder 'Huidige toegang' zie je hier welke toegang er op dit moment verleend wordt voor SSH. Je kunt hier de gehele key of enkel een specifiek IP onder deze key aanvinken.
Als je vervolgens op 'Verwijder keys en/of IP’s' klikt, dan worden ze verwijderd en kan er niet meer met de betreffende key of vanaf het betreffende IP-adres verbonden worden.
Belangrijk om rekening mee te houden
Via SSH toegang heb je het volledige beheer over de webruimte die je bij Antagonist afneemt. Dit is voor velen een enorm voordeel, en een reden om SSH te gebruiken in plaats van bijvoorbeeld beheer via FTP-clients of DirectAdmin.
Echter heeft de vrijheid die SSH-toegang biedt ook nadelen. Zo kan het verkeerde commando of een typfout onverhoopt bijvoorbeeld de volledige inhoud van jouw hostingpakket verwijderen, of jouw omgeving dusdanig beschadigen dat deze niet meer correct werkt.
We raden dan ook aan om geen SSH te gebruiken, tenzij je precies weet waar je mee bezig bent. Is dat wel het geval, wees ook dan zorgvuldig en maak goede backups van alle belangrijke data. Met de grotere vrijheid die SSH-toegang biedt, is het belang van verantwoordelijk gebruik dus ook toegenomen.