GNU/Linux >> Linux Esercitazione >  >> Linux

Puoi avere più di un file ~/.ssh/config?

Soluzione 1:

Il ~/.ssh/config file non ha una direttiva per includere altri file, possibilmente correlata al controllo di SSH per i permessi dei file.

Suggerimenti su questo possono includere uno script per catturare diverse modifiche insieme sul sistema o tramite hook di check-in su un repository. Si potrebbero anche esaminare strumenti come Puppet o Augeas.

In qualunque modo ti avvicini, però, dovrai concatenare i singoli file in modo che siano un singolo file dall'esterno del file.

$ cat ~/.ssh/config_* >> ~/.ssh/config

nota: sovrascrivi:> vs. aggiungere:>>

Aggiornamento dicembre 2017:

Dalla versione 7.3p1 in poi, c'è l'opzione Includi. Che ti permette di includere i file di configurazione.

Include
    Include the specified configuration file(s).  Mul‐
    tiple pathnames may be specified and each pathname
    may contain glob(3) wildcards and, for user config‐
    urations, shell-like “~” references to user home
    directories.  Files without absolute paths are
    assumed to be in ~/.ssh if included in a user con‐
    figuration file or /etc/ssh if included from the
    system configuration file.  Include directive may
    appear inside a Match or Host block to perform con‐
    ditional inclusion.

Soluzione 2:

Puoi specificare il file di configurazione corrente da usare in ssh come questa opzione:

ssh -F /path/to/configfile

Sembra che sia l'unico modo.

Inoltre non c'è modo di includere una configurazione in un'altra.

Soluzione 3:

A partire da ssh 7.3 (rilasciato il 1° agosto 2016), un Include direttiva è disponibile.

Includi :include i file di configurazione specificati. È possibile specificare più percorsi e ciascun percorso può contenere globwildcard e riferimenti "~" simili a shell alle directory home degli utenti. Si presume che i file senza percorsi assoluti si trovino in ~/.ssh . AnInclude la direttiva può apparire all'interno di un Match o Host blocca per eseguire l'inclusione condizionale.

(Ecco il link al bug report risolto, che include anche la patch:https://bugzilla.mindrot.org/show_bug.cgi?id=1585#c24)

Soluzione 4:

Uso personalmente questi comandi per compilare la configurazione ssh:

alias compile-ssh-config='echo -n > ~/.ssh/config && cat ~/.ssh/*.config > ~/.ssh/config'
alias ssh='compile-ssh-config && ssh'
# (This will get used by other programs depending on the ~/.ssh/config)
# (If you need you can run the compile-ssh-config command via cron etc.)

oppure:

alias compile-ssh-config='echo -n > ~/.ssh/config-compilation && cat ~/.ssh/*.config > ~/.ssh/config-compilation'
alias ssh='compile-ssh-config && ssh -F ~/.ssh/config-compilation'
# (This is saver and won't over write an existing ~/.ssh/config file)

perché:

alias ssh='ssh -F <(cat .ssh/*.config)'

non funziona per me, restituendo:

ssh: Can't open user config file /dev/fd/63: Bad file descriptor

Spero che questo possa esserti di aiuto.

Soluzione 5:

Userei anche cat config_* > config per generare l'intera configurazione. Ma non userei pupazzo/cfengine ecc. per questo, se non sono ancora presenti (a proposito:perché non usare un sistema di gestione della configurazione???).

Genererei un pacchetto (deb, rpm) e lo inserirei in un repository locale. E nello script postinst il gatto genera il tuo config. Forse includi anche una cartella locale... Il vantaggio è che gli aggiornamenti ssh/config si attivano su base giornaliera mentre cron-apt &Co viene eseguito.


Linux
  1. Hai mai fatto il rack di un server?

  2. Df dice che ho 20 g di spazio su disco in più utilizzato rispetto a Du. Perché??

  3. >&- è più efficiente di>/dev/null?

  4. Ssh - Correggere le impostazioni del file di configurazione Ssh per eseguire il tunneling su una terza macchina?

  5. Come possiamo memorizzare password diverse dal testo normale?

Utilizzo del file di configurazione SSH

Le 10 principali funzionalità SSH che DEVI conoscere per essere più produttivo

Usa il file di configurazione SSH per gestire le connessioni SSH a vari server remoti

Che cos'è un Homelab e perché dovresti averne uno?

TCP può fornire più di 65535 porte?

Come associare il server MySQL a più di un indirizzo IP?