Põhineb sellel juhendil: https://www.digitalocean.com/community/tutorials/how-to-protect-ssh-with-two-factor-authentication.
sudo apt-get install libpam-google-authenticator
Faili /etc/pam.d/sshd
lõppu lisa:
auth required pam_google_authenticator.so nullok
Kui tahad keelata ainult parooliga sisselogimist kasutajate puhul, kes Google Authenticator-it seadistanud pole, jäta ära nullok
. Kasutaja parooli küsitakse igal juhul lisaks verifikatsioonikoodile.
Failist /etc/ssh/sshd_config
otsi säte ChallengeResponseAuthentication
ja vajadusel muuda, et see oleks:
ChallengeResponseAuthentication yes
Taaskäivita sshd:
sudo service sshd restart
Logi soovitud kasutajasse ja käivita:
google-authenticator
Esimesele kahele küsimusele vasta jaatavalt (y):
Do you want authentication tokens to be time-based (y/n) y
Do you want me to update your "/home/USERNAME/.google_authenticator" file (y/n) y
Ülejäänud vasta oma soovist ja vajadusest lähtuvalt. Lõpuks kuvatakse terminali QR kood, mille saab Google Authenticator-i rakendusega sisse lugeda.
Loeb hetkel sees olevalt ID kaardilt avaliku isikutuvastuse võtme SSH formaadis ja lisab selle lubatud võtmete hulka:
pkcs15-tool --read-ssh-key 1 >> ~/.ssh/authorized_keys
Ühekordselt:
ssh -I /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so user@host
Automaatseks ID kaardi tuvastuseks ühendamisel võib lisada faili /etc/ssh/ssh_config
lõppu rida:
PKCS11Provider /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so
Kaust "x86_64-linux-gnu" võib erinevatel platvormidel olla erinev, kuid peaks sisaldama eeltoodud faili.