Por que o parâmetro ProxyJump não é herdado para o intervalo de IP especificado na configuração SSH?

Por que o parâmetro ProxyJump não é herdado para o intervalo de IP especificado na configuração SSH?

Eu uso um servidor jump (lab1) para conectar-me a servidores com IPs começando com 10.*. Todos os outros servidores não devem usar lab1 como servidor de salto e precisam de uma chave diferente.

Na configuração principal existem duas configurações incluídas e algumas configurações gerais:

Configuração principal do ssh:

Include ~/.ssh/lab.conf
Include ~/.ssh/prod.conf

Host *
  AddKeysToAgent yes
  UseKeychain yes
  User rg2531
  ForwardAgent yes
  ServerAliveInterval 30
  ServerAliveCountMax 10
  IdentityFile /SSH_keys/prod/id_rsa

laboratório.conf:

Host 10.*
  ProxyJump lab1

# Jump server
Host lab1
  HostName 134.121.15.2
  IdentityFile /SSH_keys/dev/id_rsa

# Individual hosts
Host lab2
  HostName 10.10.10.2

prod.conf:

Host prod1
  HostName 122.140.12.1

Quando eu me conecto ao lab2, ele deve usar o ProxyJump para me conectar através do servidor de salto (lab1), pois tenho uma regra para Host 10.* Mas não se comporta como esperado.

Funciona apenas se eu colocar ProxyJump lab1na Host lab2seção:

Host lab2
  HostName 10.10.10.2
  ProxyJump lab1

Por que ProxyJumpparam não é herdado?

Responder1

Porque funciona com o nome que você está usando. Se você usasse ssh 10.10.10.2seu cliente, usaria a configuração ProxyJump da sua configuração. Mas se você ssh lab2, o lab2valor não corresponder, 10.*então a configuração não será usada. Portanto, não se trata de herança, é que o ssh não reavalia a configuração depois que a configuração do `lab2 é carregada e encontra o valor do nome do host.

Se todos os seus computadores nessa 10.10.10.*rede tiverem o nome lab*, você poderá fazer algo assim.

Host lab1
  HostName 134.121.15.2
  IdentityFile /SSH_keys/dev/id_rsa

Host lab* !lab1
  ProxyJump lab1

informação relacionada