rendere gli host ssh globali a tutti gli utenti sul computer


15

Quindi SSH ha questi file che configurano le impostazioni per un utente specifico.

~/.ssh/authorized_keys
~/.ssh/config
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
~/.ssh/known_hosts

Vorrei globalizzare alcuni di questi file, come confige known_hosts. In modo che altri utenti (incluso root ) possano condividere gli host configurati.

Quale sarebbe il modo migliore per farlo?

Risposte:


21

Perché ~/.ssh/configpuoi inserire le impostazioni rilevanti del sistema in / etc / ssh / ssh_config secondo la pagina man :

ssh (1) ottiene i dati di configurazione dalle seguenti fonti nel seguente ordine:

  1. opzioni della riga di comando
  2. file di configurazione dell'utente (~ / .ssh / config)
  3. file di configurazione a livello di sistema (/ etc / ssh / ssh_config)

Per ogni parametro, verrà utilizzato il primo valore ottenuto. I file di configurazione contengono sezioni separate da specifiche "Host" e tale sezione viene applicata solo agli host che corrispondono a uno dei modelli indicati nelle specifiche.

Si noti che verrà utilizzato solo il primo valore, il che significa che l'utente può sempre sostituire localmente le opzioni di configurazione dell'intero sistema.

Perché ~/.ssh/known_hostspuoi usare /etc/ssh/ssh_known_hostso un altro file specificato dall'opzione di configurazione GlobalKnownHostsFile:

GlobalKnownHostsFile

Specifica un file da utilizzare per il database di chiavi host globale anziché / etc / ssh / ssh_known_hosts.

Non sono sicuro che sia possibile per gli altri file, ma immagino che potresti risolvere qualcosa con i collegamenti simbolici se volessi davvero condividere le chiavi private anche tra gli utenti.


1
Hai un refuso nel tuo preventivo GlobalKnownHostsFile.
cjm,

1
È possibile impostare UserKnownHostsFile = / dev / null ssh non troverà mai una chiave valida all'interno del file known_hosts degli utenti ma l'utente può ancora accettarne uno temporaneo.
Janning,

1
@Janning, sembra che ci sia effettivamente IgnoreUserKnownHostsun'opzione per questo (valori yeso no).
Kael,

Si noti che il /etc/ssh/ssh_known_hostsfile globale deve essere leggibile in tutto il mondo. Stavo usando ssh-keygen -Hf /etc/ssh/ssh_known_hostsper ripassare il mio dopo aver aggiunto manualmente le voci e sembra che fosse impostato solo per il proprietario.
Kael,

1

Poiché root è molto potente, vorrei utilizzare un processo cron cron per copiare i file da altri utenti. Host noti e chiavi autorizzate possono essere semplicemente aggiunti. Se è tutto su una partizione c'è l'opzione hardlink. Non sei sicuro che i collegamenti simbolici funzionerebbero per i file, ma potresti provare anche quello, devi solo metterli in un luogo condiviso, ma sicuro.


2
Impedirebbe agli utenti di aggiungere i propri host che IMHO è effetto indesiderato.
Maciej Piechotka,

Ho dimenticato se un file hardlink deve avere gli stessi permessi ma sospetto che lo sia. Tuttavia, è possibile copiare il file con cron e quindi assicurarsi che i permanenti siano corretti.
xenoterracide,
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.