Forza l'autenticazione con chiave pubblica SSH per utenti specifici


10

È possibile forzare utenti specifici ad accedere con chiave pubblica, consentendo ad altri utenti di accedere con password? Poiché l'autenticazione con chiave pubblica (con passphrase) è più forte dell'autenticazione con sola password, vorremmo richiedere ai sudoer di accedere con chiave pubblica. Tuttavia, è meno conveniente forzare gli utenti normali a farlo. In sshd_config, non vedo alcuna configurazione relativa alla politica.

Risposte:


11

Hai alcune opzioni. In questa risposta suppongo che tu abbia sudoersdefinito un gruppo.

Dai un'occhiata alla sshd_configpagina man e cerca la Matchdirettiva. Ciò consente di specificare blocchi di configurazione che si applicano solo a un sottoinsieme delle connessioni ssh. Potresti fare qualcosa del genere:

Match Group sudoers
PasswordAuthentication no
ChallengeResponseAuthentication no

In teoria potresti realizzare qualcosa di simile con una configurazione PAM che fallirebbe semplicemente i tentativi di autenticazione da parte delle persone nel sudoersgruppo. Ciò implicherebbe probabilmente il modulo pam_succeed_if ... potresti aggiungere qualcosa del genere alla tua authconfigurazione per sshd:

auth        requisite     pam_succeed_if.so user notingroup sudoers quiet

Ciò significa che solo le persone non sudoersappartenenti al gruppo possono eseguire l'autenticazione tramite PAM. Si noti che questo non è testato. Puoi anche usare il modulo pam_listfile per fare qualcosa di simile.


1
Grazie! Devo anche notare che la direttiva Match è stata introdotta in OpenSSH 5.0. Per distribuzioni conservative come CentOS, potrebbe non essere disponibile in modo nativo.
Crend King,

Questo interrompe OpenSSH 7.7p1 - Ho dovuto rimuovere la direttiva ChallengeResponseAuthentication per farlo riavviare.
rbsec,

2

Un'altra possibile risposta, come @larsks, non ha funzionato per la mia versione di ssh_dcome la mia versione sembra utilizzare la documentazione che si trova qui che afferma:

Solo un sottoinsieme di parole chiave può essere utilizzato sulle righe che seguono una parola chiave Match. Le parole chiave disponibili sono. . .

Tale elenco di parole chiave non comprende: ChallengeResponseAuthentication.

Un modo davvero divertente che ho trovato è stato quello di utilizzare AuthenticationMethodsnel tuo caso così:

Match Group sudoers
AuthenticationMethods 'publickey'

AuthenticationMethods accetta un elenco di valori separati da virgola che rappresentano una serie di metodi che un utente deve passare prima di accedere al server.

AuthenticationMethods 'publickey,password' forzerebbe l'utente a passare con una chiave pubblica e quindi una password.

Per saperne di più man sshd_config.

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.