sudo senza password quando si accede con chiavi private SSH


23

È possibile eseguire il comando sudo per supportare le chiavi private SSH, in modo tale che quando l'utente accede utilizzando una chiave privata, può eseguire la sudo senza digitare una password.

Ciò consentirebbe di archiviare le password del sysadmin di UNIX in una cella frigorifera crittografata e di non doverle mai accedere, presupponendo che gli utenti utilizzino sempre chiavi SSH private sicure per accedere al server.


askubuntu.com/a/135838 Se metti quegli utenti in un gruppo, puoi sicuramente farlo!
Rob,

prova a sudo visudocambiare la tua password per NOPASSWD: ALLvedere se funziona
pneumatica

3
@AlanTuring Funzionerebbe anche per gli utenti di quel gruppo che si identificavano tramite una password.
Xyon,

@AlanTuring Questo ridurrebbe effettivamente la sicurezza del server - Voglio solo alcuni utenti, non tutti, sudo
Mikko Ohtamaa,

È possibile assegnare privilegi a utenti specifici. Vedi la mia risposta
Isaac Rabinovitch il

Risposte:


10

L'opzione per farlo esiste dall'aprile 2014 (almeno) .

Dovrai installare un pacchetto chiamato pam_ssh_agent_auth(disponibile per Centos 7 out of the box, YMMV), quindi configurarlo /etc/pam.d/sudoper accettarlo come metodo di autorizzazione. Infine, potrebbe essere necessario aggiungere SSH_AUTH_SOCKall'elenco delle variabili di ambiente che persistono durante sudo.

Il wiki di Gentoo ha dettagli per questi passaggi.


1
Adorabile, grazie Liam. Peccato che non mi occupo di amministratore di sistema da molti anni!
Mikko Ohtamaa,

1

Questo non è possibile senza alcune serie modifiche al codice su sudo e sshd. Sudo non conosce i metodi di accesso e ssh non pubblica su altri programmi nulla che indichi se per l'accesso sono stati utilizzati chiave pubblica, password o altri meccanismi.

Come ha detto qualcun altro, puoi usare l'opzione NOPASSWD nei sudoer - questo si applicherebbe sempre agli utenti specificati, non solo quando usano ssh con le chiavi private.

Se vuoi davvero, potrebbero esserci dei trucchi che puoi fare con un programma di suid che controlla il registro sshd e blocca / modifica il file sudoers per consentire a quell'utente di eseguire un sudo senza password e un'attività periodica per revocare questa autorizzazione.

Detto questo, penso che questa sia una cattiva idea. La richiesta di una password per comandi privilegiati ha un paio di buoni vantaggi che la chiave privata SSH non offre. In particolare, ti consente di avere timeout per l'autent (la password deve essere reinserita, non vera per le sessioni ssh), ti consente di avere i minimi e la rotazione della password (a differenza delle chiavi ssh, che hanno una passphrase al di fuori del controllo del server).


11
"Non si può fare" non è una risposta, soprattutto quando si può fare.
Isaac Rabinovitch,

Modifica della risposta in quella corretta contenente un nuovo informatino.
Mikko Ohtamaa,

1

Un paio di risposte Punta su sudo senza una password utente separata. Dovresti essere consapevole che ciò ridurrà la tua sicurezza.

Per un utente che è già autenticato fortemente con un certificato questo potrebbe non essere un problema perché è in possesso del certificato che teoricamente potrebbe renderlo root.

Tuttavia, se si pensa alle vulnerabilità che forniranno a un utente malintenzionato una shell utente limitata e questo utente ha impostato NOPASSWD nel file sudoers, l'attaccante è root senza alcuna credenziale per il sistema.

Se sudo richiede una password dall'utente, l'attaccante ha bisogno di tempo e fortuna per inoltrare i propri privilegi al root.

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.