Postup přidání a aktivace 2FA prostřednictvím Google Authenticator na Ubuntu server
- Do mobilního telefonu si nainstalujte aplikaci "Google Authenticator" od vydavatele Google. Aplikace je dostupná pro iOS i Android.
- Na serveru nainstalujte balíček Google authentizátoru
sudo apt install -y libpam-google-authenticator -
Dle toho, kde všude cheme požadavek 2FA při přihlašování aplikovat, určíme konfigurační soubor PAM (pluggable authentication modules), do kterého záznam
auth required pam_google_authenticator.sovložíme, viz varianty níže:2FA u SSH i lokálního přihlášení-
Otevřete konfigurační PAM soubor
common-authsudo nano /etc/pam.d/common-authDo konfiguračného souboru je nutné vložit záznam
auth required pam_google_authenticator.so. Pozice vložení ovlivňuje pořadí, ve kterém je 2FA autorizace požadována.- Jestliže je vložen na začátek, viz vyznačená část níže, 2FA kód je vyžadován před heslem.
... # pam-auth-update to manage selection of other modules. See # pam-auth-update(8) for details. # Enable Google Authenticator auth required pam_google_authenticator.so # here are the per-package modules (the "Primary" block) ... - Jestliže je vložen na konec souboru, 2FA bude vyžadováno až po zadání hesla.
- Jestliže je vložen na začátek, viz vyznačená část níže, 2FA kód je vyžadován před heslem.
- Klávesovou zkrátkou
CTRL+Xa následně klávesamiYaENTERsoubor uložte a zavřete.
2FA jen pro SSH přihlášení-
Otevřete konfigurační PAM soubor
sshdsudo nano /etc/pam.d/sshdDo konfiguračného souboru je nutné vložit záznam
auth required pam_google_authenticator.so, viz vyznačená část níže:# PAM configuration for the Secure Shell service # Standard Un*x authentication. @include common-auth # Enable Google Authenticator auth required pam_google_authenticator.so # Disallow non-root logins when /etc/nologin exists. account required pam_nologin.soV souboru si povšimněme i záznamu
@include common-auth- ten se aktualizuje v případě předchozí metody (2FA i u lokálního přihlašování). Tedy, záznamauth required pam_google_authenticator.soje v takovém případě již načítán (= 2FA z lokálního přihlašování je automaticky definováno i u vzdáleného přihlašování). - Klávesovou zkrátkou
CTRL+Xa následně klávesamiYaENTERsoubor uložte a zavřete.
Poznámka: Nechceme-li dále vyžadovat heslo při vzdáleném přihlašování, záznam
@include common-authmůžeme zakomentovat (Pohlídejte si však, že záznam pro 2FA máte i v souborusudo nano /etc/pam.d/sshd.Poznámka: 2FA je automaticky aplikováno i pro
sudopříkazy. Stejně tak pro přihlášení veškerých uživatelů. -
Otevřete konfigurační PAM soubor
-
Otevřete konfigurační soubor
sshd_configsudo nano /etc/ssh/sshd_config- Ujistěte se, že
KbdInteractiveAuthenticationje nastaven na možnostyes - Na konec souboru vložte záznam:
AuthenticationMethods keyboard-interactive:pamJestliže máme aktivován i public key, můžeme jeho vyžadování vyžadovat záznamem:
AuthenticationMethods publickey,keyboard-interactive:pam
- Ujistěte se, že
- Klávesovou zkrátkou
CTRL+Xa následně klávesamiYaENTERsoubor uložte a zavřete. - Na serveru zavolejte příkaz
google-authenticatora zvolte možnostypro "time based tokens". - Otevřete Google Authenticator aplikaci na mobilním telefonu a možností "+ (Přidat) → naskenovat QR kód" si vložte do telefonu propojení se serverem.
- QR kód je difinován bezpečnostním klíčem (secret key), který je zobrazen pod daným QR kódem. Tento kód si opište.
- Na základě vyzvání přepiště kód zobrazený v Google Authenticátor aplikace do terminálu.
- Zobrazených záchranných 5 osmímístných kódů si spolu s secret key (2 body výše) pečlivě uschovejte pro možnost použití v případě ztráty telefonu.
- na výzvu ohledně aktualizace souboru
/*username*/.google_authenticatorodpověztey - Na výzvu ohledně zákazu opětovného použití kódů odpovězte
y - Na výzvu ohledně časového posunu (time skew) odpovězte
n - Na výzvu ohledně rate-limitingu odpovězte
y - Restartujte ssh(d) service
Ubuntu 24.04
sudo systemctl restart sshUbuntu 22.04sudo systemctl restart sshd sudo systemctl restart ssh - Nyní je aktivováno 2FA při přihlašování a
sudopříkazech. - Jestliže je na serveru více běžných uživatelů, 2FA autentizační soubor prostřednictvím
google-authenticatorje nutné provést pro každého uživatele zvlášť. Každý uživatel má vždy vlastní 2FA kódy.- Přepnutí se na konkrétního uživatele:
$ sudo su - someuser - Spuštění 2FA konfigurace pro uživatele
$ google-authenticator - Návrat na původního uživatele:
$ exit
- Přepnutí se na konkrétního uživatele: