Så här loggar du in på ditt Linux-skrivbord med Google Authenticator
För ytterligare säkerhet kan du kräva en tidsbaserad autentiseringstoken samt ett lösenord för att logga in på din Linux-dator. Den här lösningen använder Google Authenticator och andra TOTP-appar.
Denna process utfördes på Ubuntu 14.04 med standard Unity desktop och LightDM login manager, men principerna är desamma på de flesta Linux-distributioner och stationära datorer.
Vi har tidigare visat dig hur du behöver Google Authenticator för fjärråtkomst via SSH, och denna process är liknande. Det här kräver inte Google Authenticator-appen, men fungerar med alla kompatibla appar som implementerar TOTP-autentiseringsprogrammet, inklusive Authy.
Installera Google Authenticator PAM
Som när vi ställer in detta för SSH-åtkomst måste vi först installera lämplig PAM-programvara ("plug-to-authentication module"). PAM är ett system som tillåter oss att ansluta olika typer av autentiseringsmetoder till ett Linux-system och kräva dem.
På Ubuntu installerar följande kommando Google Authenticator PAM. Öppna ett terminalfönster, skriv följande kommando, tryck på Enter och ange ditt lösenord. Systemet laddar ner PAM från din Linuxdistributions mjukvaruförråd och installerar det:
sudo apt-get installera libpam-google-autentiserare
Andra Linux-distributioner ska förhoppningsvis få detta paket tillgängligt för enkel installation också - öppna din Linux-distributionens mjukvaruarkiv och utföra en sökning efter det. I värsta fall kan du hitta källkoden för PAM-modulen på GitHub och kompilera det själv.
Som vi påpekade tidigare beror denna lösning inte på att ringa hem till Googles servrar. Den implementerar standard TOTP-algoritmen och kan användas även om din dator inte har tillgång till Internet.
Skapa dina autentiseringsnycklar
Du måste nu skapa en hemlig autentiseringsnyckel och ange den i appen Google Authenticator (eller en liknande) på din telefon. Först logga in som ditt användarkonto på ditt Linux-system. Öppna ett terminalfönster och kör google-bestyr kommando. Typ y och följ anvisningarna här. Det här skapar en särskild fil i det aktuella användarkontoens katalog med Google Authenticator-informationen.
Du kommer också att gå igenom processen för att få den tvåfaktorkontrollkoden till en Google Authenticator eller liknande TOTP-app på din smartphone. Ditt system kan generera en QR-kod du kan skanna, eller du kan skriva in manuellt.
Var noga med att notera ner dina nödskraparkoder, som du kan använda för att logga in med om du förlorar din telefon.
Gå igenom den här processen för varje användarkonto som använder din dator. Om du till exempel är den enda personen som använder din dator kan du bara göra det en gång på ditt vanliga användarkonto. Om du har någon annan som använder din dator, vill du få dem att logga in på eget konto och skapa en lämplig tvåfaktorkod för eget konto så att de kommer att kunna logga in.
Aktivera autentisering
Här är sakerna lite dicy. När vi förklarade hur du aktiverar två-faktor för SSH-inloggningar krävde vi det bara för SSH-inloggningar. Detta garanterade att du fortfarande kan logga in lokalt om du förlorade din autentiseringsapp eller om något gick fel.
Eftersom vi tillåter tvåfaktorsautentisering för lokala inloggningar finns det potentiella problem här. Om något går fel kan du kanske inte logga in. Med tanke på det går vi igenom dig genom att aktivera detta endast för grafiska inloggningar. Detta ger dig en escape lucka om du behöver det.
Aktivera Google Authenticator för grafiska inloggningar på Ubuntu
Du kan alltid aktivera tvåstegsautentisering för endast grafiska inloggningar, hoppar över kravet när du loggar in från textprompten. Det betyder att du enkelt kan byta till en virtuell terminal, logga in där och återställa dina ändringar så att Gogole Authenciator inte skulle behövas om du upplever ett problem.
Visst, detta öppnar ett hål i ditt autentiseringssystem, men en angripare med fysisk åtkomst till ditt system kan redan utnyttja det ändå. Därför är tvåfaktorsautentisering särskilt effektiv för fjärrloggningar via SSH.
Så här gör du för Ubuntu, som använder LightDM inloggningshanteraren. Öppna LightDM-filen för redigering med ett kommando som följande:
sudo gedit /etc/pam.d/lightdm
(Kom ihåg att dessa specifika steg fungerar bara om din Linux-distribution och skrivbord använder LightDM-inloggningshanteraren.)
Lägg till följande rad i slutet av filen och spara sedan:
auth krävs pam_google_authenticator.so nullok
"Nullok" -biten i slutet berättar för att systemet ska låta en användare logga in även om de inte har kört kommandot google-autentisering för att ställa in tvåfaktorsautentisering. Om de har ställt upp det måste de ange en tidsbaserad kod - annars kommer de inte. Ta bort "nullok" och användarkonton som inte har konfigurerat en Google Authenticator-kod kommer inte att kunna logga in grafiskt.
Nästa gång en användare loggar in grafiskt, kommer de att bli ombedda till sitt lösenord och sedan uppmanade till att den nuvarande verifieringskoden visas på sin telefon. Om de inte anger verifieringskoden får de inte logga in.
Processen ska vara ganska lik för andra Linux-distributioner och stationära datorer, eftersom de vanligaste Linux-skrivbordssessionshanterare använder PAM. Du kommer sannolikt bara behöva redigera en annan fil med något liknande att aktivera lämplig PAM-modul.
Om du använder hemkatalogkryptering
Äldre utgåvor av Ubuntu erbjöd en enkel "hemmappen kryptering" alternativ som krypterade hela din hemkatalog tills du anger ditt lösenord. Specifikt använder detta ecryptfs. Men eftersom PAM-programvaran beror på en Google Authenticator-fil som lagras i din hemkatalog som standard, stör krypteringen PAM-läsningen, om du inte säkerställer att den är tillgänglig i okrypterad form till systemet innan du loggar in. Läs i README för mer Information om att undvika detta problem om du fortfarande använder de krypterade alternativen för hemkatalog.
Moderna versioner av Ubuntu erbjuder istället fullständig diskkryptering, vilket fungerar bra med ovanstående alternativ. Du behöver inte göra något speciellt
Hjälp, det bröt!
Eftersom vi bara aktiverat det för grafiska inloggningar, ska det vara enkelt att inaktivera om det orsakar ett problem. Tryck på en tangentkombination som Ctrl + Alt + F2 för att komma åt en virtuell terminal och logga in där med ditt användarnamn och lösenord. Du kan sedan använda ett kommando som sudo nano /etc/pam.d/lightdm för att öppna filen för redigering i en terminal textredigerare. Använd vår guide till Nano för att ta bort raden och spara filen, och du kommer att kunna logga in normalt igen.
Du kan också tvinga Google Authenticator att behövas för andra typer av inloggningar - eventuellt även alla systeminloggningar - genom att lägga till raden "auth required pam_google_authenticator.so" till andra PAM-konfigurationsfiler. Var försiktig om du gör det här. Och kom ihåg att du kanske vill lägga till "nullok" så att användare som inte har gått igenom installationsprocessen fortfarande kan logga in.
Ytterligare dokumentation om hur man använder och ställer in denna PAM-modul finns i programmets README-fil på GitHub.