Advertentie

Hoe te authenticeren via SSH met sleutels in plaats van wachtwoordsleutelSSH is een geweldige manier om op afstand toegang te krijgen tot uw computer. Net als bij FTP, kunt u verbinding maken via SSH FTP Wat SSH is en hoe het verschilt van FTP [Technology Explained] Lees verder om beveiligde toegang te krijgen tot een bestandsserver met uw favoriet FTP-client Beheers FTP-bestandsoverdrachten op al uw sites met FileZillaEen groot aantal FTP-clients had vroeger de hik als het ging om grote bestandsoverdrachten. De apps ondervonden de gebruikelijke time-outs die je zou verwachten als de computer daar 15 tot ... Lees verder , snel toegang krijgen tot externe bestanden of zelfs een netwerkschijf aan uw computer koppelen. Maar SSH is meer dan externe bestandstoegang. Inloggen via SSH in Terminal (of met behulp van Stopverf op Windows) geeft u shell-toegang op afstand (SSH is tenslotte een afkorting voor Secure SHell). Zo beheer ik mijn mediaserver op afstand.

Wanneer je open de poorten Wat is Port Forwarding en hoe kan het mij helpen? [MakeUseOf legt uit]

instagram viewer
Huil je een beetje van binnen als iemand je vertelt dat er een port forwarding-probleem is en dat daarom je glimmende nieuwe app niet werkt? Je Xbox laat je geen games spelen, je torrent-downloads weigeren... Lees verder op je router (poort 22 om precies te zijn) heb je niet alleen toegang tot je SSH-server vanuit je lokale netwerk, maar overal ter wereld.

U wilt echter niet het risico lopen een zwak wachtwoord te gebruiken voor authenticatie. Als iemand via SSH toegang krijgt tot uw computer, krijgt hij volledige shell-toegang. Voor alle duidelijkheid, dat is niet iets wat we willen. Gelukkig is het heel eenvoudig om uw wereldwijde SSH-server op een zeer veilige manier in te stellen door op sleutels gebaseerde authenticatie te gebruiken en wachtwoordauthenticatie op uw server helemaal uit te schakelen.

Is dit voor mij?

Het is verleidelijk om laks te worden met persoonlijke veiligheid. Als u de server voor privédoeleinden gebruikt, zou u kunnen denken dat mensen uw server gewoon niet kennen en daarom niet zullen proberen deze te hacken - veiligheid door onduidelijkheid. Dat zou een heel verkeerde veronderstelling. Omdat (het meeste) SSH-verkeer op poort 22 wordt verzonden, controleren aanvallers routinematig de zichtbaarheid van poort 22 op willekeurige IP-adressen, gevolgd door een brute force-aanval. Dit is een van de manieren waarop botnets worden gemaakt voor gebruik in DDOS-aanvallen Wat is een DDoS-aanval? [MakeUseOf legt uit]De term DDoS fluit voorbij wanneer cyberactivisme massaal de kop opsteekt. Dit soort aanvallen halen om meerdere redenen de internationale krantenkoppen. De problemen die deze DDoS-aanvallen op gang brengen, zijn vaak controversieel of zeer... Lees verder .

Om een ​​lang verhaal kort te maken: als je je SSH-server via internet uitzendt (d.w.z. poort 22 doorsturen), dan is dit inderdaad iets voor jou.

Het idee van op sleutels gebaseerde SSH-aanmeldingen

Op sleutels gebaseerde SSH-aanmeldingen zijn gebaseerd op het idee van: cryptografie met openbare sleutel. Het zou ons te ver voeren om de fijne kneepjes uit te leggen, maar we zullen proberen een eenvoudig beeld te schetsen van wat er achter de schermen gebeurt.

In het onderstaande proces genereert uw clientcomputer twee sleutels: een openbare sleutel en een privésleutel. Het algemene idee is dat u gegevens kunt versleutelen met de openbare sleutel, maar deze alleen kunt ontsleutelen met de privésleutel. We plaatsen de openbare sleutel op de server en vragen hem om alle uitgaande communicatie ermee te versleutelen. Dit zorgt ervoor dat alleen die clients met de privésleutel de gegevens kunnen decoderen en lezen.

1. Installeer OpenSSH

Eerst gaan we een SSH-server opzetten met OpenSSH. Als je al een SSH-server hebt draaien en alleen wilt weten hoe je op sleutels gebaseerde authenticatie instelt, kun je deze stap overslaan. Gebruik uw favoriete pakketbeheerder om de OpenSSH-servertoepassing te installeren. De eenvoudigste manier is misschien nog steeds om de apt-get commando van de Terminal.

sudo apt-get install openssh-server

Voer uw wachtwoord in, bevestig en wacht een minuut totdat de installatie is voltooid. Gefeliciteerd, je hebt nu een SSH-server. (Dat was gemakkelijk!)

ubuntu-install-openssh

U kunt de applicatie gebruiken zoals deze is, of bewerken /etc/ssh/sshd_config om het te configureren. Voer de... uit man sshd_config commando in Terminal voor meer informatie. Een andere geweldige bron om meer te leren over OpenSSH is de relevante Ubuntu-helppagina.

2. Sleutels genereren

We genereren een set sleutels. Voer de volgende opdrachten uit (aangepast van de OpenSSH/Sleutels Ubuntu-helppagina).

mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa

Het eerste commando maakt een verborgen map '.ssh' aan in je thuismap, het tweede commando verandert de toegangsrechten van de map terwijl het derde commando in feite een set van RSA sleutels. U wordt eerst gevraagd om een ​​locatie om de sleutels op te slaan (laat leeg en druk op enter om op de standaardlocatie op te slaan) en vervolgens om een ​​wachtwoordzin.

rsa-sleutel-generatie-mac

Deze wachtwoordzin versleutelt de privésleutel die op uw computer is opgeslagen verder, waardoor u in feite meer tijd heeft om de SSH-server te beveiligen als uw privésleutel ooit wordt gestolen. Zorg ervoor dat u een wachtwoordzin kiest die u kunt onthouden, aangezien u deze moet invoeren wanneer u uw sleutel probeert te gebruiken.

3. De openbare sleutel overdragen

Vervolgens moet u de openbare sleutel die u in de vorige stap hebt gegenereerd, overbrengen naar de SSH-servercomputer. Als uw clientcomputer ook Linux draait, kan dit heel eenvoudig worden bereikt door het onderstaande commando uit te voeren (vervangen door en voor de gebruikersnaam en het IP-adres op uw SSH-server).

ssh-kopie-id @

Als uw client de opdracht ssh-copy-id niet ondersteunt, kunt u in plaats daarvan de onderstaande opdracht gebruiken. Het is een beetje ingewikkelder, maar bereikt in wezen dezelfde resultaten.

kat ~/.ssh/id_rsa.pub | ssh @ "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"

U wordt gevraagd om het gebruikerswachtwoord voor de SSH-server in te voeren. Als de opdrachten zonder fouten worden uitgevoerd, is uw openbare sleutel naar de server gekopieerd.

4. Wachtwoordverificatie uitschakelen

Merk op dat uw systeem nog steeds niet veiliger is dan na stap één. Hoewel ten minste één client is geconfigureerd om op sleutels gebaseerde authenticatie te gebruiken, laat dit nog steeds ruimte over voor andere clients om verbinding te maken met een wachtwoord. Om te eindigen, schakelen we wachtwoordverificatie helemaal uit. Na deze stap, enkel en alleen computers die het bovenstaande proces hebben doorlopen, kunnen verbinding maken met uw SSH-server.

Om wachtwoordverificatie uit te schakelen, bewerkt u de /etc/ssh/sshd_config bestand in uw favoriete editor. Een van de gemakkelijkste manieren om een ​​beperkt bestand te bewerken is, nogmaals, het gebruik van Terminal. (Ik ben een voorstander van nano, maar je kunt alles gebruiken waar je je het prettigst bij voelt.)

sudo nano /etc/ssh/sshd_config

Ongeveer 40 regels vanaf de onderkant van het bestand vindt u:

#WachtwoordAuthenticatie ja

Verwijder het hekje (#) en verander de instelling naar 'nee', zoals hieronder.

WachtwoordAuthenticatie nr

Het uiteindelijke bestand zou er ongeveer zo uit moeten zien:

sshd_config

Sla het bestand op door op CTRL+X te drukken. Bevestig de bewerking en de bestandsnaam en je bent bijna klaar. Herstart gewoon de SSH-server om deze uit te voeren met deze nieuwe instellingen.

sudo herstart ssh

U zult ook merken dat uw client niet langer om de wachtwoordzin vraagt ​​om uw sleutel te decoderen als wachtwoordverificatie is uitgeschakeld op de server. Nu u een beveiligde SSH-server heeft, hoe bent u van plan deze te gebruiken? Als beveiligde bestandsserver, een externe shell of om andere services via SSH door te sturen? Laat het ons weten in de comments hieronder!

Afbeelding tegoed: Shutterstock

Ik ben een schrijver en student computerwetenschappen uit België. Je kunt me altijd een plezier doen met een goed artikelidee, boekaanbeveling of receptidee.