Cómo SSH directamente al objetivo a través de jumphost usando SSH Config sin comando ssh adicional

14

Si lo hago:

ssh -J jumphost.example.com target.example.com

Termino inmediatamente conectado a 'target'.

Si uso este archivo de configuración ssh, usando la nueva configuración de salto ssh-7.3:

Host jump 10.1.*, targets*, *.example.com
  HostName jumphost.example.com
  IdentitiesOnly yes
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

Terminé conectado a 'jumphost' no 'target'

El material del llavero es para Mac, lo he probado sin él y no hace ninguna diferencia, pero pensé que lo dejaría por si acaso.

AirCombat
fuente
1
-Jes ProxyJumpno HostName.
Boris the Spider

Respuestas:

21

Termina conectado al host de salto porque su configuración dice explícitamente que ignore el nombre de host que especificó e inicie sesión en el host de salto.

  HostName jumphost.example.com

HostName anula el nombre de host especificado en la línea de comando.

Si está intentando utilizar automáticamente un host de salto sin tener que especificarlo en la línea de comando ssh, la opción correcta del archivo de configuración es ProxyJump. Por ejemplo:

Host everything, behind, jumphost, *.example.com
  ProxyJump jumphost.example.com

Ahora puedes correr ssh target.example.comy pasarás por el jumphost.

Michael Hampton
fuente
2

El problema es que la definición de Host captura tanto jumphost.example.com como target.example.com como alias, luego establece HostName en jumphost.example.com en ambos casos.

Sugeriría que los alias que siguen al comando Host NO sean nombres de dominio completamente calificados, y luego cree una entrada de Host para cada

Nanzikambe
fuente