Comment SSH directement pour cibler via jumphost en utilisant SSH Config sans commande ssh supplémentaire

14

Si je fais:

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

Je me connecte immédiatement à «cible».

Si j'utilise ce fichier de configuration ssh, en utilisant la nouvelle configuration de saut 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

Je me connecte à 'jumphost' et non à 'target'

Le trousseau est pour mac, j'ai testé sans et cela ne fait aucune différence mais je pensais le laisser au cas où.

AirCombat
la source
1
-Jest ProxyJumpet non HostName.
Boris the Spider

Réponses:

21

Vous vous connectez à l'hôte de démarrage car votre configuration indique explicitement d'ignorer le nom d'hôte que vous avez spécifié et de vous connecter à l'hôte de démarrage.

  HostName jumphost.example.com

HostName remplace le nom d'hôte spécifié sur la ligne de commande.

Si vous essayez d'utiliser automatiquement un hôte de saut sans avoir à le spécifier sur la ligne de commande ssh, l'option de fichier de configuration correcte est ProxyJump. Par exemple:

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

Maintenant, vous pouvez simplement courir ssh target.example.comet vous passerez par le jumphost.

Michael Hampton
la source
2

Le problème est que la définition d'hôte intercepte à la fois jumphost.example.com ET target.example.com en tant qu'alias, puis définit HostName sur jumphost.example.com dans les deux cas.

Je suggérerais de faire des alias suivant la commande Host des noms de domaine NON complets, puis de créer une entrée Host pour chaque

Nanzikambe
la source