La Tvåfaktorautentisering (2FA) är inte något unikt som kan användas på sociala medier eller på någon annan webbplats. Tja, denna säkerhetsåtgärd kan också implementeras i ett operativsystem.
Det är därför Idag kommer vi att se hur man implementerar tvåfaktorautentisering i SSH i Ubuntu och derivat med den välkända Google Authenticator som avsevärt ökar säkerheten för din OpenSSH-server.
Normalt behöver du bara ange ett lösenord eller använda SSH-nyckeln för att logga in på ditt system på distans.
Tvåfaktorautentisering (2FA) kräver att två uppgifter anges för att logga in.
Därför måste du också ange ett tidsbaserat engångslösenord för att logga in på din SSH-server.
Detta engångslösenord beräknas med hjälp av TOTP-algoritmen, som är en IETF-standard.
Installation och konfiguration av Google Authenticator i Ubuntu och derivat
Det första steget vi ska genomföra är installationen av Google Authenticator i vårt system, så vi ska öppna en terminal i systemet (detta kan göras med tangentkombinationen "Ctrl + Alt + T) och i den ska vi skriva följande kommando:
sudo apt install libpam-google-authenticator
Installation klar vi ska köra den nyligen installerade applikationen med följande kommando:
google-authenticator
När vi kör det här kommandot är det vi ska göra att tilldela en hemlig nyckel och detta kommer att fråga oss om vi vill använda tokens baserat på tid, vilket vi kommer att svara ja.
Efter det här, de kommer att se en QR-kod som de kan skanna med en TOTP-app på sin telefon.
Här Vi rekommenderar att du använder appen Google Authenticator på din mobiltelefon.il, så att du kan installera appen via Google Play eller Apple App Store på din mobiltelefon.
Om du redan har applikationen på din telefon måste du skanna QR-koden med den. Tänk på att du måste förstora terminalfönstret för att skanna hela QR-koden.
QR-koden representerar den hemliga nyckeln, som endast är känt för dess SSH-server och dess Google Authenticator-app.
När QR-koden har skannats kan de se en unik sexsiffrig symbol på sin telefon. Som standard varar denna token i 30 sekunder och den måste anges för att logga in på Ubuntu via SSH.
I terminalen kommer du också att kunna se den hemliga koden, liksom verifieringskoden och nödstartkoden.
Från vilken vi rekommenderar att du förvarar denna information på ett säkert ställe för senare användning. Av de andra frågorna vi ställer kommer vi helt enkelt att svara ja genom att skriva bokstaven y.
Konfigurera SSH för användning med Google Authenticator
Räknar redan med ovanstående, Nu ska vi göra den nödvändiga konfigurationen för att kunna använda SSH-anslutningen i vårt system med Google Authenticator.
I terminal vVi ska skriva följande kommando
sudo nano /etc/ssh/sshd_config
Inne i filen vi ska leta efter följande rader och vi kommer att ändra dessa till "ja", enligt följande:
UsePAM yes ChallengeResponseAuthentication yes
När ändringarna har gjorts sparar du ändringarna med Ctrl + O och stänger filen med Ctrl + X.
I samma terminal ska vi starta om SSH med:
sudo systemctl restart ssh
Som standard kräver autentisering att de anger användarlösenordet för att logga in.
För vad låt oss redigera PAM-reglerfilen för SSH-demonen.
sudo nano /etc/pam.d/sshd
I början av den här filen kan du se följande rad, som möjliggör autentisering av lösenord
ChallengeResponseAuthentication
Som vi måste ställa till ja.
För att även aktivera engångslösenordsautentisering, lägg till följande två rader.
@include common-auth #One-time password authentication via Google Authenticator auth required pam_google_authenticator.so
Spara och stäng filen.
Från och med nu uppmanas de att ange användarlösenordet och en verifieringskod (det engångslösenord som genereras av Google Authenticator) varje gång de loggar in på ditt system via en SSH-anslutning.
Hej, ganska enkel handledning, men när jag gör alla steg som jag inte längre kan ange via ssh, ger det mig ett felaktigt lösenordsfel, jag kan inte ens be om 2FA.
Jag har Ubuntu Server 20.04