Como usar globbing na configuração ssh para conectar via túnel SSH?

Como usar globbing na configuração ssh para conectar via túnel SSH?

Aqui está a arquitetura do host local para ServerC1..n

Eu configurei ~/.ssh/configo arquivo no 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

Posso me conectar diretamente ServerC1usando ssh ServerC1o comando localhostusando a configuração acima.

A questão é que são muitos ServerB'se cada um ServerBestá conectado a vários ServerC's. As chaves privadas são as mesmas para todos os servidores, então esse não é o problema.

Do localhost, quero me conectar via túnel SSH a qualquer um dos ServerC1,2,3..n

ServerA /etc/hostspossui todos os nomes de host e IPs para ServerB e cada ServerB possui IPs de ServerC em seu /etc/hostsarquivo.

Posso usar a correspondência de padrões em meu localhost's ~/.ssh/configarquivo para fazer isso? Atualmente estou limitado a conectar ServerC1apenas porque especifiquei ServerB1eServerC1

Responder1

Após alguma ajuda do reddit, a melhor resposta para este problema é configurar o ~/.ssh/configarquivo da seguinte forma: Supondo que todos os ServerB* tenham o mesmo 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

E então na linha de comando:

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

informação relacionada