Εγκαθιστούμε το google authenticator

sudo apt install libpam-google-authenticator

Κάνω login με το χρήστη που θα χρειαστεί να ενεργοποιήσω 2FA και τρέχω

google-authenticator

Εδώ θα μου βγάλει το παρακάτω

Do you want authentication tokens to be time-based (y/n) y
Warning: pasting the following URL into your browser exposes the OTP secret to Google:
https://www.google.com/chart?chs=<>



Do you want me to update your “/home/user/.google_authenticator” file (y/n) y

Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y

By default, tokens are good for 30 seconds and in order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with poor
time synchronization, you can increase the window from its default
size of 1:30min to about 4min. Do you want to do so (y/n) y

If the computer that you are logging into isn’t hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y

Αποθηκεύουμε όλες τις πληροφορίες και κάνουμε και ένα screenshot το barcode.

Ανοίγουμε την εφαρμογή Google Authenticator στο Android κινητό μας και scanαρουμε το barcode.

Επίσης ρυθμίζω να παίρνω backup και το φάκελο ~/.google_authenticator

 

Ανοίγω με ένα editor το αρχείο /etc/pam.d/sshd

sudo nano /etc/pam.d/sshd

και προσθέτω στο τέλος του αρχείου την γραμμή

auth required pam_google_authenticator.so

σε παλιότερες εκδόσεις θα χρειαζόταν το nullok στο τέλος στην περίπτωση που θα θέλαμε το PAM να είναι προαιρετικό και να μπορούσαμε να κάνουμε login και με τα SSH Key

auth required pam_google_authenticator.so nullok

Τώρα στο αρχείο /etc/ssh/sshd_config θα αλλάξουμε σε  yes ChallengeResponseAuthentication  για να ενεργοποιήσουμε την χρήση του αρχείου pam στο Authenticator

sudo nano /etc/ssh/sshd_config

 

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication yes


Επανεκκινώ τον SSH Server

sudo service sshd restart