SSH JumpHost für SSH & Ansible

Um per SSH auf Server zuzugreifen, die nicht direkt erreichbar sind, kann man sich einen oder mehrere JumpHost einrichten. Konfiguriert man Maschinen mit Ansible, kann dort dieser JumpHost ebenfalls genutzt werden. Das möchte ich heute in einem kurzen Artikel zeigen.

Um nun auf Kunden A zuzugreifen, muss ich meinen SSH Service so konfigurieren, dass dieser über den JumpHost den Server 1 oder 2 finden kann. Auf dem JumpHost benötige ich einen User, mit dem ich mich einloggen kann, hier tauscht man am besten die Keys aus.

Auf dem Client erstelle ich mir nun eine /home/[username]/.ssh/config mit folgendem Inhalt:

Host 192.168.10.*
  StrictHostKeyChecking no
  ProxyCommand ssh -q -W %h:%p proxyuser@192.168.10.1

Host 192.168.50.*
  StrictHostKeyChecking no
  ProxyCommand ssh -q -W %h:%p proxyuser@192.168.50.1

Jetzt werden alle SSH-Verbindungen zu 192.168.50.xxx über den JumpHost Kunde B und alle Verbindungen zu 192.168.10.xxx über JumpHost Kunde A geleitet.

Man kann auch ssh so konfigurieren, dass entsprechend der Domain geroutet wird. Dazu ergänzt man die Konfiguration noch um Folgendes:

Host *.kunde-a.lan
  StrictHostKeyChecking no
  ProxyCommand ssh -q -W %h:%p proxyuser@192.168.10.1

Host 192.168.10.*
  StrictHostKeyChecking no
  ProxyCommand ssh -q -W %h:%p proxyuser@192.168.10.1

Host *.kunde-b.lan
  StrictHostKeyChecking no
  ProxyCommand ssh -q -W %h:%p proxyuser@192.168.50.1

Host 192.168.50.*
  StrictHostKeyChecking no
  ProxyCommand ssh -q -W %h:%p proxyuser@192.168.50.1

Jetzt sollten folgende Kommandos zum richtigen Ergebnis führen:

ssh root@192.168.10.45
ssh root@192.168.50.45
ssh root@server1.kunde-a.lan
ssh root@server3.kunde-b.lan
0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

20 − 18 =