GNU/Linux >> LINUX-Kenntnisse >  >> Linux

ssh über einen Router ohne Portweiterleitung

Was Sie tun möchten, ist ssh VON Ihrem "Linux-Server" ZU etwas außerhalb, wie "my_other_server" oder etwas anderes, zu dem beide Server gelangen können.

Sie würden die ssh-Remote-Portweiterleitung verwenden.
[[email protected]_server]$ ssh -R8022:localhost:22 my_other_server.com
Erläuterung:Verbinden Sie sich mit my_other_server und öffnen Sie dort Port 8022, der auf Port 22 zu mir zurückleitet.

Von my_other_server.com können Sie ssh an localhost auf Port 8022 senden und Ihren Datenverkehr an linux_server huckepack auf dem Tunnel linux_server -> my_other_server [[email protected]_server]$ ssh -p8022 localhost weiterleiten lassen
Erläuterung:Verbinden Sie sich mit mir selbst auf Port 8022, der an linux_server weitergeleitet wird

Wenn Sie Probleme mit dem Ausfall des anfänglichen linux_server -> my_other_server-Tunnels haben, können Sie ein Skript erstellen, um ihn offen zu halten, die Keepalive-Einstellungen anpassen oder autossh verwenden.


Diese Antwort basiert auf der akzeptierten Antwort, fügt jedoch die Details hinzu, die es mir ermöglicht haben, sie zu erledigen. Ich entschuldige mich für die flüchtige Erklärung, da dies überhaupt nicht mein Fachwissen ist.

Angenommen, Sie haben zwei Computer, A und B . Sie möchten ssh ab A bis B , und Sie können keine Portweiterleitung in den mit ihnen verbundenen Routern durchführen.

Wie die akzeptierte Antwort besagt, benötigen Sie einen Server S dazu:im Computer B , erlauben Sie ssh Verbindungen, die von S kommen; und vom Computer A , greifen Sie unter S auf diesen Tunnel zu um B zu erreichen .

Aber wie bekommt man diesen Server S ? Ich habe serveo gefunden (Link:https://serveo.net/). Es ist von sehr einfacher Verwendung. Sie müssen nichts installieren oder registrieren und es ist kostenlos. Laut Website sind die folgenden Schritte zu befolgen:

  1. Denken Sie an einen Alias ​​für Computer B . Beispiel:computer_B_alias .

  2. Im Computer B , führen Sie ssh -R computer_B_alias:22:localhost:22 serveo.net aus .

  3. Jetzt können Sie auf Computer B zugreifen von Computer A durch Ausführen des Folgenden im Computer A :ssh -J serveo.net [email protected]_B_alias , wo Sie user ersetzen müssen nach dem Namen des Benutzers im Computer B .

P.S.:Natürlich machen Sie Punkt 2 automatisch beim Start Ihres Computers B .

P.S.S.:Bevor Sie dies versuchen, vergewissern Sie sich, dass ssh ist auf beiden Rechnern installiert. Für Ubuntu sudo apt-get install ssh würde den Job machen.


Sie können eine Art VPN verwenden, um dies zum Laufen zu bringen, aber Sie müssten einen Server haben, auf den der unzugängliche Server zugreifen kann. Dann können Sie OpenVPN auf dem Server, Ihrem PC und dem Firewall-Server einrichten, aktivieren Sie client-to-client , und du bist fertig. http://openvpn.net/howto.html


Linux
  1. Linux – X11-Weiterleitung über SSH?

  2. Ssh – SCP über mehrere Hosts?

  3. Ändern Sie den SSH-Port in CWP

  4. X-Anwendungen können nicht über SSH unter Linux ausgeführt werden

  5. HTTPS-SSH-Tunnel

So ändern Sie den SSH-Port auf VPS

So richten Sie die dynamische SSH-Portweiterleitung unter Linux ein

Verwenden der SSH-Portweiterleitung als Sicherheitstool unter Linux

So ändern Sie den SSH-Port in CentOS

Wie ändere ich den SSH-Port auf Centos 7.x?

Wie ändere ich den SSH-Port auf Ubuntu?