
Neem cyberveiligheid serieus en gebruik SSH-sleutels om toegang te krijgen tot externe logins. Ze zijn een veiligere manier om verbinding te maken dan wachtwoorden. We laten u zien hoe u SSH-sleutels in Linux genereert, installeert en gebruikt.
Wat is er mis met wachtwoorden?
Secure shell (SSH) is het gecodeerde protocol dat wordt gebruikt om in te loggen op gebruikersaccounts op externe Linux- of Unix-achtige computers. Dergelijke gebruikersaccounts worden doorgaans beveiligd met wachtwoorden. Als u zich aanmeldt op een externe computer, moet u de gebruikersnaam en het wachtwoord opgeven voor het account waarop u zich aanmeldt.
Wachtwoorden zijn de meest gebruikelijke manier om de toegang tot computerbronnen te beveiligen. Desondanks heeft wachtwoordgebaseerde beveiliging zijn gebreken. Mensen kiezen zwakke wachtwoorden, delen wachtwoorden, gebruiken hetzelfde wachtwoord op meerdere systemen, enzovoort.
SSH-sleutels zijn veel veiliger en als ze eenmaal zijn ingesteld, zijn ze net zo gemakkelijk te gebruiken als wachtwoorden.
Wat maakt SSH-sleutels veilig?
SSH-sleutels worden in paren gemaakt en gebruikt. De twee sleutels zijn met elkaar verbonden en cryptografisch beveiligd. De ene is uw openbare sleutel en de andere is uw privésleutel. Ze zijn gekoppeld aan uw gebruikersaccount. Als meerdere gebruikers op één computer SSH-sleutels gebruiken, ontvangen ze elk hun eigen sleutelpaar.
Uw persoonlijke sleutel is geïnstalleerd in uw thuismap (meestal) en de openbare sleutel is geïnstalleerd op de externe computer (of computers) waartoe u toegang moet hebben.
Uw privésleutel moet veilig worden bewaard. Als het toegankelijk is voor anderen, bevindt u zich in dezelfde positie alsof zij uw wachtwoord hadden ontdekt. Een verstandige – en sterk aanbevolen – voorzorgsmaatregel is dat uw privésleutel op uw computer wordt gecodeerd met een robuuste wachtwoordzin.
De openbare sleutel kan vrij worden gedeeld zonder uw veiligheid in gevaar te brengen. Het is niet mogelijk om uit een onderzoek van de openbare sleutel te bepalen wat de privésleutel is. De privésleutel kan berichten versleutelen die alleen de privésleutel kan ontsleutelen.
Wanneer u een verbindingsverzoek indient, gebruikt de externe computer de kopie van uw openbare sleutel om een gecodeerd bericht te maken. Het bericht bevat een sessie-ID en andere metagegevens. Alleen de computer die in het bezit is van de persoonlijke sleutel – uw computer – kan dit bericht decoderen.
Uw computer heeft toegang tot uw privésleutel en ontsleutelt het bericht. Vervolgens stuurt het zijn eigen gecodeerde bericht terug naar de externe computer. Dit versleutelde bericht bevat onder meer de sessie-ID die van de externe computer is ontvangen.
De externe computer weet nu dat u moet zijn wie u zegt dat u bent, omdat alleen uw privésleutel de sessie-ID kan extraheren uit het bericht dat deze naar uw computer heeft gestuurd.
Zorg ervoor dat u toegang hebt tot de externe computer
Zorg ervoor dat u op afstand verbinding kunt maken met en kunt inloggen op de externe computer. Dit bewijst dat uw gebruikersnaam en wachtwoord een geldig account hebben dat is ingesteld op de externe computer en dat uw inloggegevens correct zijn.
Probeer niets met SSH-sleutels te doen totdat u heeft geverifieerd dat u SSH met wachtwoorden kunt gebruiken om verbinding te maken met de doelcomputer.
In dit voorbeeld wordt een persoon met een gebruikersaccount gebeld dave is ingelogd op een computer met de naam howtogeek . Ze gaan verbinding maken met een andere computer met de naam Sulaco.
Ze voeren het volgende commando in:
ssh dave@sulaco

Ze worden om hun wachtwoord gevraagd, ze voeren het in en ze worden verbonden met Sulaco. Hun opdrachtregelprompt verandert om dit te bevestigen.

Dat is de enige bevestiging die we nodig hebben. Dus gebruiker dave kan loskoppelen van Sulaco met de exit opdracht:
exit

Ze ontvangen het bericht voor het verbreken van de verbinding en hun opdrachtregelprompt keert terug naar dave@howtogeek.
VERWANT: Verbinding maken met een SSH-server vanuit Windows, macOS of Linux
Een paar SSH-sleutels maken
Deze instructies zijn getest op Ubuntu-, Fedora- en Manjaro-distributies van Linux. In alle gevallen was het proces identiek en was het niet nodig om nieuwe software op een van de testmachines te installeren.
Typ de volgende opdracht om uw SSH-sleutels te genereren:
ssh-keygen

Het generatieproces begint. U wordt gevraagd waar u uw SSH-sleutels wilt opslaan. Druk op Enter om de standaardlocatie te accepteren. De machtigingen voor de map beveiligen deze alleen voor jouw gebruik.

U wordt nu om een wachtwoordzin gevraagd. We raden u ten zeerste aan om hier een wachtwoordzin in te voeren. En onthoud wat het is! U kunt op Enter drukken om geen wachtwoordzin te hebben, maar dit is geen goed idee. Een wachtwoordzin die uit drie of vier niet-verbonden woorden bestaat, aan elkaar geregen, zal een zeer robuuste wachtwoordzin vormen.

U wordt gevraagd dezelfde wachtwoordzin nogmaals in te voeren om te verifiëren dat u hebt getypt wat u dacht dat u had getypt.
De SSH-sleutels worden voor u gegenereerd en opgeslagen.

U kunt de “randomart” die wordt weergegeven negeren. Sommige externe computers kunnen u elke keer dat u verbinding maakt, hun willekeurige kunst laten zien. Het idee is dat u herkent of de willekeurige afbeelding verandert en dat u de verbinding wantrouwt, omdat dit betekent dat de SSH-sleutels voor die server zijn gewijzigd.
De openbare sleutel installeren
We moeten uw openbare sleutel installeren op Sulaco , de externe computer, zodat deze weet dat de openbare sleutel van u is.
Dit doen we met behulp van de ssh-copy-id opdracht. Deze opdracht maakt een verbinding met de externe computer zoals de normale ssh commando, maar in plaats van u toe te staan in te loggen, draagt het de openbare SSH-sleutel over.
ssh-copy-id dave@sulaco

Hoewel u zich niet aanmeldt op de externe computer, moet u zich toch verifiëren met een wachtwoord. De externe computer moet aangeven bij welke gebruikersaccount de nieuwe SSH-sleutel hoort.
Houd er rekening mee dat het wachtwoord dat u hier moet opgeven, het wachtwoord is voor het gebruikersaccount waarop u zich aanmeldt. Dit is niet de wachtwoordzin die u zojuist heeft aangemaakt.

Als het wachtwoord is geverifieerd, ssh-copy-id draagt uw openbare sleutel over naar de externe computer.
U keert terug naar de opdrachtprompt van uw computer. U bent niet meer verbonden met de externe computer.

Verbinding maken met SSH-sleutels
Laten we de suggestie volgen en proberen verbinding te maken met de externe computer.
ssh dave@sulaco

Omdat het verbindingsproces toegang tot uw privésleutel vereist, en omdat u uw SSH-sleutels achter een wachtwoordzin heeft beveiligd, moet u uw wachtwoordzin opgeven zodat de verbinding kan worden voortgezet.

Voer uw wachtwoordzin in en klik op de knop Ontgrendelen.
Nadat u uw wachtwoordzin in een terminalsessie hebt ingevoerd, hoeft u deze niet opnieuw in te voeren zolang u dat terminalvenster open heeft staan. U kunt zo veel externe sessies als u wilt verbinding maken en verbreken zonder uw wachtwoordzin opnieuw in te voeren.
U kunt het selectievakje aanvinken voor de optie “Deze sleutel automatisch ontgrendelen wanneer ik ben aangemeld”, maar het zal uw veiligheid verminderen. Als u uw computer onbeheerd achterlaat, kan iedereen verbinding maken met de externe computers die uw openbare sleutel hebben.
Nadat u uw wachtwoordzin heeft ingevoerd, bent u verbonden met de externe computer.

Om het proces nogmaals van begin tot eind te verifiëren, verbreekt u de verbinding met de exit commando en maak opnieuw verbinding met de externe computer vanuit hetzelfde terminalvenster.
ssh dave@sulaco

U wordt verbonden met de externe computer zonder dat u een wachtwoord of wachtwoordzin nodig hebt.
Geen wachtwoorden, maar verbeterde beveiliging
Cybersecurity-experts praten over iets dat beveiligingsfrictie wordt genoemd. Dat is de kleine pijn die u moet doorstaan om extra beveiliging te krijgen. Er zijn meestal een paar extra stappen nodig om een veiligere manier van werken te gebruiken. En de meeste mensen houden er niet van. Ze geven eigenlijk de voorkeur aan een lagere beveiliging en het gebrek aan wrijving. Dat is de menselijke natuur.
Met SSH-sleutels krijgt u meer veiligheid en meer gemak. Dat is een duidelijke win-win.