Det är en utmärkt idé att logga in på din säkra server utan ett lösenord. Allvarligt, bli av med det. Det är inte nödvändigt att använda ett lösenord på en av de mest angripna tjänsterna på webbservrar, eller hur?

Okej, skämt. Det är dock sant. Standard lösenordsbaserad autentisering på SSH är en dålig idé. Lösenord kan brytas ganska enkelt, och när de är det enda som står mellan en angripare och otillbörlig åtkomst till din server, borde du definitivt vara nervös.

Det är därför RSA-nyckelbaserad autentisering är mycket bättre. Du kan konfigurera din Linux-server för att bara tillåta åtkomst från datorer som har RSA-nycklarna som den redan har accepterat. Någon annan kommer att avvisas omedelbart. Som en extra fördel kan du skapa dessa nycklar med eller utan ett lösenord, vilket är helt upp till dig. En stark nyckel utan lösenord är dock bra i de flesta fall.

Om du också använder Linux-enheter hemma, har du den extra fördelen av bekvämligheten. Säg att du vill ha SSH till din Linux-arbetsstation från din bärbara dator. Vill du verkligen ange ditt lösenord varje gång? Ställ in SSH-nycklar, och du behöver inte.

Installera paketet

Det finns ett par paket som du behöver. Du har förmodligen redan några av dem, men det är en bra idé att kolla. Paketen är olika på servern och klienten, men det finns också en bra chans att båda maskinerna är servrar och klienter till varandra (hemläge), så du kanske vill installera båda uppsättningarna av paket.

På servern

Servern behöver bara OpenSSH-tjänsten installerad och igång. Det är inte som standard på Debian och Ubuntu-system. Om du inte redan har installerat, gör så.

 sudo apt installa openssh-server 

På kunden

Klienten behöver OpenSSH-klientpaketet. OpenSSH har ett inbyggt verktyg för att generera nycklar.

 sudo apt installa openssh-client 

Skapa din nyckel

Det är väldigt enkelt att generera din nyckel. Berätta bara för OpenSSH att du behöver skapa nyckeln. Det är också en bra idé att ange antalet bitar med -b flaggan och typen med -t . En 4096 bit nyckel är bäst. Det ger starkare kryptering.

 ssh-keygen -b 4096 -t rsa 

Först kommer verktyget att fråga var du vill lagra nyckeln. Klicka bara på Enter för standardkatalogen. Då kommer det att fråga om ett lösenord. Lämna den tom för en lösenordsfri nyckel och lösenordsfri autentisering. Om du vill använda ett lösenord för din nyckel anger du det.

Din dator tar några sekunder att generera din nyckel. När det är klart kommer det att berätta att det är klart och skriv ut en ASCII art-bild.

Skicka din nyckel

För att använda din nyckel måste du skicka den till din server. OpenSSH har också ett nytt inbyggt verktyg för det också. Berätta var din nyckel är och vilken användare på servern som ska associera den med.

 ssh-copy-id -i ~ / .ssh / id_rsa.pub anvä[email protected] 

Ange serverns IP-adress. Det är som att du använder servern via SSH (du är), men det skickar bara över nyckeln.

Därefter försöker du komma åt servern över SSH igen. Den här gången borde det bara släppa in dig utan lösenord.

Konfigurera SSH för att blockera lösenord

För bästa säkerhet måste du inaktivera SSH-lösenordsloggar på servern. SSH-serverkonfigurationen finns på "/ etc / ssh / sshd_config." Öppna den filen på servern med sudo och din favorit textredigerare.

Hitta linjerna nedan och redigera dem för att se ut som exemplet. Ovanstående båda poster och ändra värdena till no .

 PasswordAuthentication no PermitEmptyPasswords nr 

Det kommer inte att göra någonting om du lämnar PAM-autentisering aktiverad. Hitta raden nedan och sätt den till no .

 AnvändPAM nr 

När posterna har ändrats, spara och lämna filen och starta om SSH-servern för att de ska träda i kraft.

 sudo systemctl starta om sshd 

Om du fortfarande är fast besluten att behålla lösenordsautentiseringsmetoden, glöm inte att konfigurera tvåfaktorsautentisering som ett extra skyddslag.

Det är allt! Din server är mycket säkrare nu utan lösenord. Du har också den extra fördelen att du inte behöver skriva in dem. Du kan också byta din enda nyckel med så många servrar som du vill.