¿Cómo utilizar globbing en la configuración ssh para conectarse a través del túnel SSH?

¿Cómo utilizar globbing en la configuración ssh para conectarse a través del túnel SSH?

Aquí está la arquitectura del host local al ServidorC1..n

He configurado ~/.ssh/configel archivo en localhost:

### First jump host. Directly reachable
Host ServerA
    Hostname 10.0.5.101
    User jenny
    IdentityFile /home/admin/.ssh/serverA

### Second jumphost. Only reachable via 10.0.5.101
Host ServerB1
  HostName ServerB1
  User james
  ProxyJump ServerA
  IdentityFile /home/admin/.ssh/james

### Host only reachable via serverA and ServerB1
Host ServerC1
  HostName ServerC1
  User root
  ProxyJump ServerB1
  IdentityFile /home/admin/.ssh/ServerC1

Puedo conectarme directamente al ServerC1uso del ssh ServerC1comando localhostusando la configuración anterior.

El tema es que son muchos ServerB'sy cada uno ServerBestá conectado con varios ServerC's. Las claves privadas son las mismas para todos los servidores, por lo que ese no es el problema.

Desde localhost, quiero conectarme a través de un túnel SSH a cualquiera de ServerC1,2,3..n

El servidorA /etc/hoststiene todos los nombres de host y las IP del servidor B y cada servidor B tiene las IP del servidor C en su /etc/hostsarchivo.

¿Puedo usar la coincidencia de patrones en mi localhost's ~/.ssh/configarchivo para lograr esto? Actualmente estoy limitado a conectarme ServerC1sólo porque especifiqué ServerB1yServerC1

Respuesta1

Después de un poco de ayuda de reddit, la mejor respuesta a este problema es configurar el ~/.ssh/configarchivo de la siguiente manera: Suponiendo que todo el ServidorB* tenga el mismo IdentityFile.

Host ServerA
    Hostname 10.0.5.101
    User jenny
    IdentityFile /home/admin/.ssh/serverA

Match originalhost ServerB*
    User james
    ProxyJump ServerA
    IdentityFile /home/admin/.ssh/james

Y luego en la línea de comando:

ssh -J serverB1 -i /home/admin/.ssh/ServerC1 root@ServerC1

información relacionada