GNU/Linux >> Tutoriels Linux >  >> Linux

Pouvez-vous avoir plus d'un fichier ~/.ssh/config ?

Solution 1 :

Le ~/.ssh/config le fichier n'a pas de directive pour inclure d'autres fichiers, éventuellement liés à la vérification par SSH des autorisations de fichier.

Les suggestions autour de cela peuvent inclure un script pour regrouper plusieurs modifications soit sur le système, soit via des crochets d'archivage sur un référentiel. On pourrait également se pencher sur des outils tels que Puppet ou Augeas.

Cependant, quelle que soit votre approche, vous devrez concaténer des fichiers individuels pour en faire un seul fichier extérieur au fichier.

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

remarque : écraser :> v.s. ajouter :>>

Mise à jour décembre 2017 :

À partir de 7.3p1, il existe l'option Inclure. Ce qui vous permet d'inclure des fichiers de configuration.

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.

Solution 2 :

Vous pouvez spécifier le fichier de configuration actuel à utiliser dans l'option ssh comme ceci :

ssh -F /path/to/configfile

Il semble que ce soit le seul moyen.

De plus, il n'y a aucun moyen d'inclure une configuration dans une autre.

Solution 3 :

À partir de ssh 7.3 (publié le 1er août 2016), un Include directive est disponible.

Inclure :incluez le(s) fichier(s) de configuration spécifié(s). Plusieurs chemins d'accès peuvent être spécifiés et chaque chemin d'accès peut contenir des globwildcards et des références "~" de type shell aux répertoires d'accueil de l'utilisateur. Les fichiers sans chemin d'accès absolu sont supposés être en ~/.ssh . AnInclude directive peut apparaître à l'intérieur d'un Match ou Host bloc pour effectuer une inclusion conditionnelle.

(Voici le lien vers le rapport de bogue résolu, qui inclut également le correctif :https://bugzilla.mindrot.org/show_bug.cgi?id=1585#c24)

Solution 4 :

J'utilise personnellement ces commandes pour compiler la configuration 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.)

ou :

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)

parce que :

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

ne fonctionne pas pour moi, retour :

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

J'espère que cela vous sera utile.

Solution 5 :

J'utiliserais aussi cat config_* > config pour générer l'ensemble de la configuration. Mais je n'utiliserais pas puppet/cfengine etc. pour cela, s'ils ne sont pas encore en place (BTW :pourquoi ne pas utiliser un système de gestion de configuration ???).

Je générerais un package (deb, rpm) et le mettrais dans un référentiel local. Et dans le script postinst, le chat génère votre config. Peut-être que vous incluez également un dossier local... L'avantage est que les mises à jour ssh/config s'activent quotidiennement pendant l'exécution de cron-apt &Co.


Linux
  1. Avez-vous déjà racké un serveur ?

  2. >&- est-il plus efficace que>/dev/null ?

  3. Ai-je besoin d'espace d'échange si j'ai plus qu'assez de RAM ?

  4. Déconcerté par un simple débit de liaison, ne peut pas obtenir plus d'un Gig

  5. Comment lier le serveur MySQL à plusieurs adresses IP ?

Utilisation du fichier de configuration SSH

Top 10 des fonctionnalités SSH que vous DEVEZ connaître pour être plus productif

Utiliser le fichier de configuration SSH pour gérer les connexions SSH à divers serveurs distants

Qu'est-ce qu'un Homelab et pourquoi devriez-vous en avoir un ?

TCP peut-il fournir plus de 65535 ports ?

SSH - Comment inclure la commande -t dans le fichier ~/.ssh/config