ssh con passphrase, fallback su Google Authenticator


8

Con l'introduzione di Google Authenticator e la possibilità di usarlo con ssh, mi chiedevo se qualcuno ha attraversato una configurazione sshd_config che avrebbe

  • prima aspetto una chiave
  • in caso contrario, tornare a un'autenticazione con Google Authenticator

L'idea è quella di connettersi di solito senza soluzione di continuità con una chiave e, di solito in ambienti meno amichevoli, connettersi con un meccanismo a due fattori.

Risposte:


16

Sì, ho una configurazione in cui posso accedere sshal mio server utilizzando l'autenticazione con chiave pubblica, con un fallback all'autenticazione a due fattori con Google Authenticator + password quando la mia chiave privata non è disponibile. Questi sono i passaggi che è possibile utilizzare per configurarlo.

Installazione di Google Authenticator

Il mio server esegue Ubuntu Bionic Beaver (18.04.1). Puoi installare Google Authenticator utilizzando apt:

$ sudo apt install libpam-google-authenticator

Configurazione di sshd

Apri /etc/pam.d/sshde aggiungi la seguente riga in alto:

auth optional pam_google_authenticator.so

Apri /etc/ssh/sshd_confige cambia una riga. La linea esistente è

ChallengeResponseAuthentication no

e dovresti cambiarlo in

ChallengeResponseAuthentication yes

Configurazione di Google Authenticator per il tuo account

Il prossimo passo è attivare Google Authenticator per il tuo account. Puoi farlo semplicemente eseguendo:

$ google-authenticator

Assicurati di eseguirlo come l'utente che effettuerà connessioni ssh, non root. Prendi nota della tua nuova chiave segreta e dei tuoi codici di emergenza. La procedura guidata ti farà diverse domande per configurare le impostazioni di sicurezza per il tuo account.

Configurazione della tua app mobile

Uso l'app Google Authenticator per iPhone. Questa app ha un pulsante [+] che mi consente di aggiungere un nuovo token basato sul tempo usando la chiave segreta che ho ottenuto dal google-authenticatorcomando sul mio server. È stato banale da installare. Non posso aiutarti con le app su qualsiasi altra piattaforma, ma immagino che il processo sia altrettanto semplice.

Tirando il grilletto

L'ultima cosa che devi fare è riavviare sshd.

$ sudo /etc/init.d/ssh restart

A questo punto, quando si tenta di connettersi al server quando è disponibile la chiave privata, l'autenticazione funziona. Quando la chiave privata non è disponibile, verrà richiesto un codice di verifica, quindi la password dell'account.

Bingo, autenticazione a due fattori.


Grazie mille: è molto completo ed è esattamente quello che stavo cercando.
WoJ,

Sembra fantastico, esattamente quello di cui ho bisogno. Seguirò le tue istruzioni e darò un feedback in seguito.
peipst9lker,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.