Gibt es eine Art SSH Reverse Proxy/Router?
Hallo zusammen,
wie oben schon zu sehen, suche ich eine Art SSH Reverse Proxy. Ich arbeite mit Docker und möchte auf jeden einzelnen Container eine SSH Verbindung über Port 22 aufbauen können. Natürlich via Hostnamen getrennt, sprich mit Monitoring.example.com möchte ich auf den Monitoring Server eine SSH aufbauen und via minecraft.example.com eine SSH zum Minecraft Server
Gibt es hierfür möglicherweise schon fertige Lösungen? Kann mich möglicherweise einer vom Fach unterstützen? Gibt es hierfür andere Begrifflichkeiten?
Schön wäre auch noch, wenn man den Dienst auch in einen Docker Container stopfen könnte.
Ich bedanke mich schonmal im Vorraus!
Mit freundlichen Grüßen
2 Antworten
was du suchst ist ein nat. allerdings unterstützt ein nat normalerweise keine hostnamen.
versuchs mal mit iptables. die unterstützen auch hostnames.
Irgendwie verstehe ich gerade nicht, was ein NAT damit zu tun hat. Könntest du das vielleicht nochmal ein wenig für mich erläutern?
Mit iptables kann ich meines Wissens nach nur die einzelnen Protokolle und Ports freigeben oder sperren aber eine Anfrage nicht an andere Server weitergeben. Wenn ich mich hierbei irre bitte ich um Korrektur.
Du solltest dein Vorhaben noch einmal gründlich überdenken.
Normalerweise gibt es keinen Grund dafür SSH in jedem Container einzurichten und es wird davon auch dringend abgeraten.
Wenn du regelmäßig irgendwas direkt im Container machst, dann machst du sowieso was falsch.
Wenn es denn unbedingt sein muss:
Was spricht dagegen einfach mit SSH auf den Host zu gehen und sich dann via
docker exec -it <container name> /bin/bash
mit dem Container zu verbinden?
Wenn der Befehl nicht funktioniert, dann gibt es im Container wahrscheinlich keine Bash.
Versuch alternativ mal /bin/sh oder /bin/ash oder vielleicht sogar /bin/zsh
Oder noch besser, wenn du via SSH rein kommst, dann führ einfach mal
cat /etc/shells
aus.
Dann solltest du sehen welche Shell es gibt.
Oder
ps -p $$
Sollte dir deine aktuell verwendete Shell zeigen.
Mir ist bewusst das das nicht die schönste Lösung ist und ich bevorzuge auch das Administrieren direkt vom Host aus, aber der vorgeschlagene Befehl funktioniert bei vielen Containern komischerweise nicht. In diese komme ich nur rein, wenn ich mich auf den Container direkt via SSH draufschalte.