Devo avere una passphrase per la mia chiave SSH RSA?


71

Prima di iniziare il mio attuale lavoro (in una piccola impresa), il mio ufficio non aveva firewall sulla rete e letteralmente non veniva mai eseguito il backup. Ora che ho firmato come dipartimento dedicato sysadmin / one-man-IT, ho fatto il possibile per cambiarlo. Dopo aver spiegato al mio capo quanto fossimo vulnerabili, mi ha permesso di installare alcuni server di backup, uno dei quali è a casa sua.

In questo momento, sto cercando di impostare tutto in modo da poter automatizzare i backup giornalieri. Sto programmando di usare rsync tramite ssh per fare questo. Per motivi di sicurezza e per facilità di automazione, avevo in programma di disabilitare l'accesso con password ssh e di utilizzare solo la convalida della chiave rsa. Bene, se ho un set di passphrase rsa, allora dovrei ancora inserire una password, e questo è un problema.

Non avere una passphrase rsa rende le cose significativamente meno sicure? Sono l'unica persona in azienda che ha qualche indizio su questo genere di cose, quindi non sono troppo preoccupata per qualcuno che chiama un terminale sulla mia macchina (che è sempre bloccato quando sono AFK, comunque ) e immergersi in uno dei server di backup e causare danni. Sono ancora molto, molto nuovo nel mondo dell'amministrazione dei sistemi, e questa è la prima volta che faccio qualcosa del genere, e non voglio lasciare buchi nell'impostazione della sicurezza.

I computer in questione qui eseguono Ubuntu 10.10, SME Server e OSX 10.6, se questo in qualche modo fa la differenza.


5
Non dovrebbe esserci alcuna perdita di sicurezza non avendo una passphrase sulla chiave. Il mantenimento dell'integrità della sicurezza della chiave a questo punto diventa parte integrante poiché se qualcuno è in grado di copiarla non esiste una chiave segreta che ne impedirebbe l'utilizzo.
Chris Marisic,

1
Forse sono solo io, ma non ho idea di cosa stia cercando di dire il commento sopra.
underscore_d

3
@underscore_d In pratica sta dicendo: Nessun impatto sulla sicurezza SSH avere o meno passphrase per le tue chiavi, MA devi mantenere le tue chiavi localmente sicure.
Hartator,

Risposte:


89

Come sai, il vantaggio che ti offre la passphrase è che se qualcuno è in grado di leggere la tua chiave privata, non è in grado di usarla.

Se qualcuno è in grado di accedere a quella chiave privata, dovresti dare per scontato che abbiano accesso (ed) / compromesso qualunque macchina sia configurata con la chiave pubblica. Cose come .bash_history o .ssh / config lo rendono più semplice, anche se il tuo .ssh / known_hosts è offuscato.

Non avere una password sulla tua chiave non è la fine del mondo, ecco 3 idee per provare ad aiutarti a proteggerti un po 'meglio nonostante ciò. ( Il grande è il secondo, leggi che se non altro )


  1. Non utilizzare la stessa chiave su tutte le macchine e gli utenti. Generare ogni utente su ogni macchina (che deve fare questo tipo di cose) la propria coppia di chiavi. Ciò ti consentirà di mantenere un controllo accurato su ciò che è in grado di vedere dove.

  2. Quando si aggiunge la chiave al file authorized_keys, è possibile bloccarla per poter eseguire solo un comando specifico o utilizzarla solo da un host specifico.

    Vedi man sshe cerca command = e from =

    La sintassi è simile a:

    from="1.2.3.4",command="/path/to/executable argument" ssh-rsa key name

    cioè pop 'rsync' lì e solo 'rsync' può essere chiamato dalla tua chiave, e solo dall'indirizzo IP 1.2.3.4. È possibile separare più IP ,. Sono supportati anche i nomi host.

  3. Un'altra cosa che mi viene in mente è la direttiva "AllowUser" nel tuo sshd_config

    AllowUsers

    Questa parola chiave può essere seguita da un elenco di modelli di nomi utente, separati da spazi. Se specificato, l'accesso è consentito solo per i nomi utente che corrispondono a uno dei modelli. '*' e '?' può essere utilizzato come carattere jolly nei motivi. Sono validi solo i nomi utente; un ID utente numerico non viene riconosciuto. Per impostazione predefinita, l'accesso è consentito a tutti gli utenti. Se il modello assume il formato USER @ HOST, USER e HOST vengono controllati separatamente, limitando gli accessi a determinati utenti da determinati host.

    Ciò garantisce sostanzialmente che l'utente possa accedere solo da una determinata posizione. (Anche se accetta anche i caratteri jolly) Non risolverà tutti i tuoi problemi ma renderà almeno più difficile per gli altri.


1
Bello - questo è esattamente quello che dovevo sapere. Grazie mille!
eckza,

3
Nessun problema, non prenderlo come un elenco esaustivo! :-) Mi vengono in mente cose come la revisione regolare di auth.log / secure ecc.
Caro

3
Quindi l'auditing invece di preoccuparsi che la tua passphrase venga rubata?
Ehtesh Choudhury,

3
@shurane Fai entrambe le cose!
Caro

4

Puoi usare qualcosa come il portachiavi per rendere meno dolorosa la passphrase. Questo è leggermente più sicuro rispetto all'utilizzo di un accesso senza password e può essere utilizzato in combinazione con le altre risposte qui. La risposta di PriceChild è stata abbastanza buona.


-4

Personalmente uso DSA e non RSA, principalmente perché è quello che ho sempre usato e so che "funziona", ma la teoria immagino sia la stessa. È possibile sostituire dsacon rsanel seguito.

Sulla fonte:

$ ssh-keygen -t dsa

Quindi copiare il contenuto del .ssh/id_dsa.pubfile nell'account .ssh/authorized_keysutente sulla destinazione.

Quindi dovresti essere in grado di ssh tra l'origine e la destinazione senza password.


1
C'è qualche motivo per cui sostenete la dsa piuttosto che la rsa? Ho visto più spesso l'opposto raccomandato.
Caro

@PriceChild: AFAIK, la loro sicurezza è più o meno equivalente (supponendo che le dimensioni della chiave siano sufficienti). Non essendo io stesso un crittografo, mi fido della decisione di OpenSSH e GnuPG di utilizzare RSA come algoritmo chiave predefinito. Vedi anche questa domanda .
gravità

Nessun vero motivo - principalmente una scelta personale - che e il fatto che RSA sia stato violato di recente e che sia stato rubato un codice sensibile - come si collega alle chiavi RSA non ne ho idea (chi lo fa?) Ma ho sempre usato DSA perché sembrava più sicuro .
Majenko,

9
Temo che l'hack su "la compagnia RSA" non abbia alcun effetto sulla sicurezza dell '"algoritmo RSA". Dai un'occhiata anche a secure.wikimedia.org/wikipedia/en/wiki/RSA_Security - "RSA è stata chiamata in base all'algoritmo di crittografia a chiave pubblica RSA, che a sua volta prende il nome dalle iniziali dei suoi co-inventori: Ron Rivest, Adi Shamir e Len Adleman. "
Caro

6
@Matt: l' unica cosa che hanno in comune è il nome. L'algoritmo crittografico asimmetrico RSA è pura matematica, non c'è modo di indebolirlo con una violazione dei sistemi di alcune società.
Grawity
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.