wie verbinde ich ssh mit dem angegebenen port?

56

Ich weiß, wie ich mich mit einem bestimmten Port verbinden kann, wenn ich sshing.

ssh user@remotehostip -p XXX

Aber gibt es eine Möglichkeit, ein SSH mit einem bestimmten Port einzurichten?

Ich meine, gibt es eine Möglichkeit, den Port anzugeben, den mein lokaler Computer verwenden wird?

kwagjj
quelle
Meinten Sie Server-Port oder Client-Empfangs-Port ändern? Edit: Ok, ich habe meinen Vorschlag gelöscht. Favorisiert.
Polym
Ich möchte den Port des Kunden angeben
kwagjj
3
@kwagjj meinst du den Quellport? Wenn dies nicht der Fall ist, können Sie den Quellport nicht steuern.
Patrick

Antworten:

15

Das ist nicht so einfach möglich. Wie das geht, hängt davon ab, wo der Quellport zu sehen sein soll: Auch lokal, oder reicht es aus Sicht des externen Netzwerks, wenn es der richtige Port ist?

Sie können den SSH-Client in einem LXC-Container ausführen. Ich habe das noch nie getan, daher kann ich es Ihnen nicht im Detail erklären. Sie erstellen jedoch eine virtuelle Netzwerkschnittstelle und hängen sie an diesen Container an, sodass sshdiese Schnittstelle verwendet wird, da sie die einzige (externe) Schnittstelle ist, die angezeigt wird.

Auf dem Host-System sollte es möglich sein, zu erkennen, dass ein Paket von dieser Schnittstelle stammt. Sie können also Netfilters NAT (SNAT) verwenden, um die Quelladresse mit etwas neu zu schreiben:

iptables -t nat -A POSTROUTING -o vnet0 -p tcp --dport 22 -j SNAT --to-source :1234

Dies funktioniert natürlich nicht (oder wird komplizierter), wenn Sie eine Verbindung zu Ports herstellen, die sich von 22 unterscheiden.

Hauke ​​Laging
quelle
1
danke ... aber ich denke, diese Info ist nicht in meiner Liga ... aber trotzdem danke :) Aber wenn ich wirklich wirklich in eine Sackgasse gerate mit dem, was ich tue ... werde ich vielleicht meinen Kopf dazu drehen antworte nochmal :)
kwagjj
Ja, es ist wirklich schwierig, Informationen zu diesem Thema zu finden. Ich habe davon erfahren sshfsund jemand hat gesagt, dass es mit diesem Befehl funktioniert, aber ich glaube es nicht. Wenn Sie die Antwort finden, lassen Sie es uns bitte wissen :)!
Polym
@kwagjj Es ist möglicherweise einfacher (zu verstehen), ein vollständiges Linux (Textmodus) als echte VM zu installieren. Wenn Sie diese VM (oder ein bestimmtes Konto darin) nur für SSH verwenden, können Sie dies mit dem VM Netfilter tun.
Hauke ​​Laging
6

Die Befehlssyntax, nach der Sie suchen, ist möglicherweise die folgende. ssh -p XXX user @ remotehostip Sie müssen die Reihenfolge der Optionen ändern. Probieren Sie es jetzt aus, es funktioniert bei mir. Freundliche Grüße.

Rafael Garcia
quelle
2

Eine einfache Lösung für die Portweiterleitung über Ihren Router besteht darin, den eingehenden Port auf den von Ihnen gewünschten und den lokalen Port auf 22 zu setzen. Ihr Computer nimmt weiterhin wie gewohnt eine SSH-Verbindung auf 22 auf, stellt jedoch tatsächlich eine Verbindung von außerhalb Ihres Netzwerks her Sie würden Ihren Inbound-Port verwenden. Wenn Sie nur versuchen, Bots daran zu hindern, Ihren Computer auf 22 zu hämmern, sollte dies der Fall sein.

Dies könnte für Ihr spezifisches Problem nicht hilfreich sein, aber ich würde mir vorstellen, dass viele Menschen aus diesem Grund hierher kommen.

Stoopkid
quelle