Prioritera din cybersäkerhet genom att använda SSH-nycklar för att fjärransluta. De erbjuder en betydligt säkrare inloggningsmetod jämfört med traditionella lösenord. I den här guiden visar vi hur du genererar, installerar och använder SSH-nycklar i Linux.
Varför är lösenord riskabla?
Secure Shell (SSH) är ett krypterat protokoll som används för att logga in på användarkonton på fjärrdatorer som kör Linux eller liknande operativsystem. Vanligtvis skyddas dessa konton med lösenord. När du ansluter till en fjärrdator måste du ange både användarnamn och lösenord för att få tillgång.
Lösenord är fortfarande det vanligaste sättet att säkra tillgång till datorresurser, men den metoden har flera svagheter. Användare väljer ofta svaga lösenord, delar dem, eller använder samma lösenord på flera olika system. Det skapar en sårbarhet.
SSH-nycklar är betydligt säkrare och, efter korrekt konfigurering, är de lika enkla att använda som lösenord.
Hur fungerar SSH-nycklars säkerhet?
SSH-nycklar skapas och används i par. De två nycklarna är länkade och kryptografiskt skyddade. Den ena är din publika nyckel, och den andra är din privata nyckel. De är specifikt knutna till ditt användarkonto. Om flera användare på samma dator använder SSH-nycklar, kommer varje användare att ha sitt eget nyckelpar.
Din privata nyckel sparas i din hemkatalog (oftast), medan den publika nyckeln installeras på de fjärrdatorer du vill ansluta till.
Det är absolut nödvändigt att din privata nyckel förvaras säkert. Om någon får tillgång till den, befinner du dig i samma utsatta läge som om de hade fått tag på ditt lösenord. En mycket rekommenderad säkerhetsåtgärd är att kryptera din privata nyckel med en stark lösenfras på din dator.
Den publika nyckeln kan däremot delas utan att äventyra din säkerhet. Det är praktiskt taget omöjligt att härleda den privata nyckeln utifrån den publika. Den privata nyckeln används för att kryptera meddelanden som endast den privata nyckeln kan dekryptera.
När du initierar en anslutning använder fjärrdatorn sin kopia av din publika nyckel för att kryptera ett meddelande. Detta meddelande innehåller ett sessions-ID och ytterligare metadata. Endast din dator, som innehar den privata nyckeln, kan dekryptera detta meddelande.
Din dator dekrypterar meddelandet med hjälp av din privata nyckel, och skickar sedan tillbaka ett eget krypterat meddelande till fjärrdatorn. Detta meddelande inkluderar bland annat det sessions-ID som din dator fick från fjärrdatorn.
Nu är fjärrdatorn säker på att du är den du utger dig för att vara, eftersom endast din privata nyckel kunde extrahera sessions-ID:t från meddelandet som skickades till din dator.
Förbered fjärranslutningen
Innan du går vidare, se till att du kan ansluta till och logga in på fjärrdatorn. Detta bekräftar att ditt användarnamn och lösenord är korrekt inställda på fjärrdatorn och att dina inloggningsuppgifter är giltiga.
Innan du börjar konfigurera SSH-nycklar, verifiera att du kan ansluta till måldatorn med SSH och lösenord.
I det här exemplet är en användare med namnet ”dave” inloggad på en dator som heter ”wdzwdz”. Han ska ansluta till en annan dator med namnet ”Sulaco”.
Han anger följande kommando:
ssh [email protected]
Han får en lösenordsfråga, anger sitt lösenord, och anslutningen till Sulaco upprättas. Hans kommandotolk ändras som bekräftelse.
Det är den bekräftelse som behövs. Nu kan användare ”Dave” logga ut från Sulaco med kommandot ”exit”:
exit
Han får meddelandet om att han är frånkopplad och kommandotolken återgår till [email protected]
Skapa SSH-nyckelpar
Dessa instruktioner har testats på Ubuntu-, Fedora- och Manjaro-distributioner av Linux. I samtliga fall var processen identisk, och ingen ny programvara behövde installeras på testmaskinerna.
För att generera dina SSH-nycklar, använd följande kommando:
ssh-keygen
Genereringsprocessen startar. Du kommer att bli tillfrågad om var du vill spara dina SSH-nycklar. Tryck på Enter för att acceptera standardplatsen. Behörigheterna för mappen skyddar den och säkerställer att endast du har tillgång till den.
Därefter kommer du att ombes att ange en lösenfras. Det är starkt rekommenderat att du gör det. Kom ihåg den! Du kan trycka på Enter för att inte ha någon lösenfras, men det är inte att rekommendera. En lösenfras som består av tre eller fyra osammanhängande ord utgör en mycket stark lösenfras.
Du kommer att bli ombedd att ange samma lösenfras en gång till, för att verifiera att du har skrivit rätt.
SSH-nycklarna genereras och sparas automatiskt.
Du kan ignorera ”randomart” som visas. Vissa fjärrdatorer kan visa en sådan ”randomart” varje gång du ansluter. Tanken är att du ska lägga märke till om den slumpmässiga bilden ändras, och då bör du vara misstänksam mot anslutningen. Det tyder på att SSH-nycklarna för den servern har ändrats.
Installera den publika nyckeln
Vi måste installera din publika nyckel på Sulaco, fjärrdatorn, för att den ska kunna identifiera att den offentliga nyckeln tillhör dig.
Vi använder kommandot ssh-copy-id. Det här kommandot upprättar en anslutning till fjärrdatorn som det vanliga ssh-kommandot, men istället för att logga in, överför det den publika SSH-nyckeln.
ssh-copy-id [email protected]
Även om du inte loggar in på fjärrdatorn måste du ändå autentisera dig med ett lösenord. Fjärrdatorn behöver veta vilket användarkonto den nya SSH-nyckeln ska associeras med.
Observera att lösenordet som du behöver ange är lösenordet till användarkontot du försöker logga in på. Det är inte samma som den lösenfras du skapade tidigare.
Efter att lösenordet har bekräftats kommer ssh-copy-id att överföra din publika nyckel till fjärrdatorn.
Du återgår till kommandotolken på din dator och förblir inte ansluten till fjärrdatorn.
Anslut med SSH-nycklar
Nu kan vi testa och försöka ansluta till fjärrdatorn.
ssh [email protected]
Eftersom anslutningen kräver tillgång till din privata nyckel, och eftersom du har skyddat dina SSH-nycklar med en lösenfras, måste du ange din lösenfras för att anslutningen ska lyckas.
Ange din lösenfras och klicka på ”Lås upp”-knappen.
När du har angett din lösenfras i en terminalsession behöver du inte ange den igen så länge du håller terminalfönstret öppet. Du kan ansluta och logga ut från flera fjärrsessioner utan att ange lösenfrasen igen.
Du har möjlighet att markera rutan ”Lås upp den här nyckeln automatiskt när jag är inloggad”, men det minskar säkerheten. Om du lämnar din dator utan uppsikt, kan vem som helst upprätta anslutningar till de fjärrdatorer som har din publika nyckel.
När du har angett din lösenfras, har du anslutit till fjärrdatorn.
För att bekräfta processen ytterligare en gång, logga ut med kommandot ”exit” och anslut sedan på nytt till fjärrdatorn i samma terminalfönster.
ssh [email protected]
Nu är du ansluten till fjärrdatorn utan att ange varken lösenord eller lösenfras.
Inga lösenord, ökad säkerhet
Cybersäkerhetsexperter pratar om något som kallas ”säkerhetsfriktion”, det vill säga det lilla obehag man får stå ut med för att få extra säkerhet. Ofta krävs ett eller två extra steg för att implementera en säkrare metod, vilket de flesta inte gillar. Många föredrar en lägre säkerhetsnivå och enklare procedurer. Det är den mänskliga naturen.
Med SSH-nycklar får du en kombination av ökad säkerhet och högre bekvämlighet. En tydlig win-win-situation.