GNU/Linux >> Znalost Linux >  >> Linux

Můžete mít více než jeden soubor ~/.ssh/config?

Řešení 1:

~/.ssh/config soubor nemá direktivu pro zahrnutí dalších souborů, možná související s kontrolou SSH na oprávnění k souboru.

Návrhy kolem tohoto mohou zahrnovat skript, který spojí několik změn buď v systému, nebo pomocí kontrolních háčků v úložišti. Dalo by se také podívat na nástroje, jako je Puppet nebo Augeas.

Jakkoli k tomu však přistoupíte, budete muset zřetězit jednotlivé soubory, aby byly jedním souborem mimo soubor.

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

poznámka: přepsat:> v. s. připojit:>>

Aktualizace z prosince 2017:

Od 7.3p1 a výše existuje možnost Zahrnout. Což vám umožňuje zahrnout konfigurační soubory.

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.

Řešení 2:

Aktuální konfigurační soubor, který se má použít ve volbě ssh, můžete zadat takto:

ssh -F /path/to/configfile

Zdá se, že je to jediný způsob.

Také neexistuje žádný způsob, jak zahrnout jednu konfiguraci do druhé.

Řešení 3:

Počínaje ssh 7.3 (vydáno 1. srpna 2016), Include je k dispozici.

Zahrnout :Zahrnout zadané konfigurační soubory. Lze zadat více cest a každá cesta může obsahovat globwildcards a odkazy na domovské adresáře uživatelů podobné shellu. Soubory bez absolutních cest jsou považovány za ~/.ssh . Include direktiva se může objevit uvnitř Match nebo Host blokovat pro podmíněné zahrnutí.

(Zde je odkaz na opravenou zprávu o chybě, která také obsahuje opravu:https://bugzilla.mindrot.org/show_bug.cgi?id=1585#c24)

Řešení 4:

Osobně tyto příkazy používám ke kompilaci konfigurace 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.)

nebo:

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)

protože:

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

nefunguje mi, vrací se:

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

Doufám, že to bude k něčemu užitečné.

Řešení 5:

Také bych použil cat config_* > config k vygenerování celé konfigurace. Ale nepoužil bych k tomu puppet/cfengine atd., pokud ještě nejsou zavedeny (BTW:proč nepoužít systém správy konfigurace???).

Vygeneroval bych balíček (deb, rpm) a vložil ho do místního úložiště. A v postinst skriptu kočka vygeneruje vaši konfiguraci. Možná zahrnete také místní složku...Výhodou je, že aktualizace ssh/config se aktivují denně, zatímco běží cron-apt &Co.


Linux
  1. Jak můžeme uložit jiné heslo než prostý text?

  2. Jak mohu přidat adresu IPv6 s ID rozsahu do konfiguračního souboru ssh?

  3. Proč v systému Linux nemohu vytvářet soubory větší než 2 GB?

  1. Už jste někdy nabourali server?

  2. Ssh – správná nastavení konfiguračního souboru Ssh pro tunelování ke 3. počítači?

  3. SSH - Jak zahrnout příkaz -t do souboru ~/.ssh/config

  1. Df říká, že mám o 20 g více místa na disku než Du. Proč??

  2. Je>&- efektivnější než>/dev/null?

  3. Potřebuji swapovací prostor, když mám více než dostatečné množství RAM?