GNU/Linux >> Tutoriales Linux >  >> Linux

¿Puedes tener más de un archivo ~/.ssh/config?

Solución 1:

El ~/.ssh/config file no tiene una directiva para incluir otros archivos, posiblemente relacionada con la verificación de permisos de archivos de SSH.

Las sugerencias en torno a esto pueden incluir un script para procesar varios cambios juntos, ya sea en el sistema o a través de ganchos de registro en un repositorio. También se pueden buscar herramientas como Puppet o Augeas.

Sin embargo, sin embargo, tendrá que concatenar archivos individuales para que sean un solo archivo desde fuera del archivo.

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

nota: sobrescribir:> v.s. agregar:>>

Actualización de diciembre de 2017:

Desde 7.3p1 en adelante, existe la opción Incluir. Lo que le permite incluir archivos de configuración.

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.

Solución 2:

Puede especificar el archivo de configuración actual para usar en la opción ssh como esta:

ssh -F /path/to/configfile

Parece que es la única forma.

Además, no hay forma de incluir una configuración en otra.

Solución 3:

A partir de ssh 7.3 (lanzado el 1 de agosto de 2016), un Include directiva está disponible.

Incluir :incluye los archivos de configuración especificados. Se pueden especificar varios nombres de ruta y cada nombre de ruta puede contener globwildcards y referencias "~" similares a shell a los directorios de inicio del usuario. Se supone que los archivos sin rutas absolutas están en ~/.ssh . UnInclude directiva puede aparecer dentro de un Match o Host bloquear para realizar la inclusión condicional.

(Aquí está el enlace al informe de error resuelto, que también incluye el parche:https://bugzilla.mindrot.org/show_bug.cgi?id=1585#c24)

Solución 4:

Yo personalmente uso esos comandos para compilar la configuración 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.)

o:

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)

porque:

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

no me funciona, devolviendo:

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

Espero que esto sea de alguna ayuda.

Solución 5:

También usaría cat config_* > config para generar toda la configuración. Pero no usaría títeres/cfengine, etc. para esto, si aún no están implementados (por cierto, ¿por qué no usar un sistema de administración de configuración?).

Generaría un paquete (deb, rpm) y lo colocaría en un repositorio local. Y en el script postinst, el gato genera su configuración. Tal vez también incluya una carpeta local... La ventaja es que las actualizaciones de ssh/config se activan diariamente mientras se ejecuta cron-apt &Co.


Linux
  1. ¿Cómo podemos almacenar una contraseña que no sea texto sin formato?

  2. xargs sustitución de más de un argumento

  3. ¿Cómo puedo agregar una dirección IPv6 con una ID de alcance al archivo de configuración ssh?

  4. ¿Por qué no puedo crear archivos de más de 2 GB en Linux?

  5. SSH:cómo incluir el comando -t en el archivo ~/.ssh/config

Uso del archivo de configuración SSH

¿Alguna vez has traspasado un servidor?

Las 10 características principales de SSH que DEBE conocer para ser más productivo

Use el archivo de configuración SSH para administrar las conexiones SSH a varios servidores remotos

¿Qué es un Homelab y por qué debería tener uno?

¿Puede TCP proporcionar más de 65535 puertos?