SSH weiterleiten an TCP

470
Lesto

Ich habe einen bestimmten Benutzerfall: Ich möchte, dass jede SSH-Verbindung von einem bestimmten Benutzer oder Port auf transparente Weise zu einem lokalen TCP-Port umgeleitet wird.

Bislang probiere ich Port-Forwarding aus, aber der CLIENT muss einige spezielle Tags hinzufügen. Ich habe versucht, mit verschiedenen Varianten der Option -L und -R ein wenig zu spielen, ohne Erfolg.

Einige Varianten, die ich ausprobiert habe, sind (lokaler TCP-Dienst ist 12345, ich möchte, dass sich der Client über SSH auf 4321 verbindet)

ssh -L 12345:localhost:4321 localhost ssh -R 12345:localhost:4321 localhost 

Auf dem Server SSH habe ich die TCP-Weiterleitung und GatewayPorts an den angegebenen Client aktiviert

Ich möchte ssh auf meinem Computer mit einem benutzerdefinierten Benutzer / Port (aber nicht mit benutzerdefinierten Optionen) und in der Lage sein, direkt und transparent mit einem bestimmten TCP-Dienst zu kommunizieren, der auf dem Computer ausgeführt wird. Die Kommunikation ist binär, daher ist eine transparente Kommunikation wichtig.

Um es sauberer zu machen: Der Client verwendet SSH, um eine Verbindung zu einem Server herzustellen und Daten von einem TCP-Socket abzurufen, der lokal auf dem Server ausgeführt wird

0
Bitte geben Sie eine Frage an ... und eine Erklärung / Beschreibung dessen, was Sie tatsächlich tun möchten, wäre ebenfalls hilfreich. Attie vor 6 Jahren 0
Die Portweiterleitung über SSH umfasst im Allgemeinen vier Computer: (1) einen Client, der `ssh 'startet, (2) einen Server, der mit' sshd 'hört, (3) ein Ziel, das durch den Tunnel zu erreichen ist, (4) ein Computer, der nutzt den Tunnel, um das Ziel zu erreichen. In einigen Fällen sind einige von ihnen möglicherweise derselbe Host, daher können drei oder zwei echte Computer beteiligt sein oder sogar einer, wenn Ihr Ziel mühsam genug ist. Abhängig davon, ob (4) eine Verbindung zu (1) oder (2) herstellt, gibt es eine lokale oder Remote-Weiterleitung. Ihre Frage ist unklar, aber Ihr übermäßiger Einsatz von `localhost` scheint dieser umständlichen Ein-Computer-Idee nahe zu sein. Bitte klären Sie. Kamil Maciorowski vor 6 Jahren 0
"Auf transparente Weise." - Ich vermute, wenn Sie "transparenten Weg" sagen, meinen Sie, Sie wollen sicheren SSH-Verkehr an einen unsicheren Port weiterleiten. Ist das korrekt? Ramhound vor 6 Jahren 0
@Ramhound gibt es eine andere Ebene der Transparenz, die ich brauche: SSH zu TCP, wie Sie sagten, aber auch in der Kommunikation: Ich könnte einen Benutzer mit netcat / telnet als Shell erstellen, aber das Programm reagiert auf Sonderzeichen und ist daher nicht transparent Binärdaten. Lesto vor 6 Jahren 0
@ KamilMaciorowski Bitte beachte, dass ich auch die volle Kontrolle über SSHD habe, wie durch das Aktivieren einiger Flaggen wie TCPForwarding gezeigt wird. Ich habe es auch geschafft, eine 3-PC-Konfiguration mit dem R-Flag zu verwenden (im Grunde genommen einen Server als "Broker"), also muss Ihr Teory irgendwo falsch sein. Mein Ziel ist es, SSH vom Client für den Zugriff auf TCP auf dem Server zu verwenden. 2 Stck. Lesto vor 6 Jahren 0
Prüfen Sie, ob diese Frage und Antwort hilfreich ist: [* So öffnen Sie den Port über den SSH-Tunnel? *] (Https://superuser.com/q/1213886/432690) Beachten Sie außerdem, wie klar die Frage ist, und Sie angeben, welche Maschine in welcher Rolle agiert : "A" ist (1) und (4), "B" ist (2) und (3) in Bezug auf meinen vorherigen Kommentar. Dies ist, was Ihrer Frage fehlt. Die von Ihnen ausgeführten `ssh'-Befehle legen nahe, dass Sie eine einzelne Maschine in den Rollen (1), (2) und (3) haben möchten. Dies entspricht jedoch nicht genau Ihrem obigen Kommentar. Die Verwendung des gleichen Hosts wie (1) und (2) ist ziemlich eigenartig, daher sind meine anfänglichen Zweifel. Kamil Maciorowski vor 6 Jahren 0

0 Antworten auf die Frage