Wie kann ich über das Internet per SSH auf meinen Heimcomputer zugreifen?

Wie kann ich über das Internet per SSH auf meinen Heimcomputer zugreifen?

Gibt es Software, die mir hilft, vom öffentlichen Internet aus eine SSH-Verbindung zu meinem Heimcomputer herzustellen (z. B. zu einem Café)?

Ich verstehe, dass ähnliche Fragen gestellt wurden, aber keine scheint die Frage wirklich zu beantworten. Lassen Sie mich einige Details hinzufügen, um die übliche Flut von Antworten über DynDNS und Portweiterleitung zu vermeiden.

  • Ich habe Zugriff auf einen öffentlich zugänglichen SSH-Server. Eine einfache Portweiterleitung von dort ist keine stabile Lösung, die mehrere Tage hält. Portweiterleitungen neigen dazu, Verbindungen abzubrechen, langsam zu sein usw.

  • Ich möchte weder DynDns einrichten/bezahlen noch NAT-Traversal auf meinem Router konfigurieren.

Ich denke, dass Folgendes möglich sein sollte, ich weiß nur nicht, ob es bereits Software gibt, die dies leistet:

So wie Peer-to-Peer-Programme NAT-Traversal per Hole-Punch durchsetzen, sollte es möglich sein, auf meinem Heimcomputer ein Programm laufen zu lassen, das per Hole-Punch den externen Zugriff auf die entsprechenden Ports öffnet. Darüber hinaus kann das Programm die öffentliche IP-Adresse des Heimcomputers und den per Hole-Punch extern sichtbaren Port irgendwohin senden (beispielsweise auf einen öffentlichen Server oder per E-Mail) und diese Informationen regelmäßig aktualisieren.

Gibt es eine solche Software? Ein Teil dieser Funktionalität wird bereits von verschiedenen Torrent-Programmen bereitgestellt.

Antwort1

Ich empfehle unter keinen Umständen, Ihr Gerät in einer DMZ zu platzieren, es sei denn, Sie wissen wirklich, was Sie tun, und können das Gerät und das umgebende Netzwerk ordnungsgemäß sichern.

Es gibt Software, die ein LAN über das Internet emulieren kann, genanntLogMeIn Hamachi. Indem Sie dies auf dem Host installieren und aktivieren, können Sie darauf zugreifen, indem Sie sich überall im Internet beim VLAN anmelden.

Obwohl ich das Problem mit der Portweiterleitung nicht unbedingt sehe.

Eine weitere Möglichkeit besteht darin, die integrierte Portweiterleitungsfunktion von SSH zu verwenden. Wenn es einen anderen SSH-Host gibt, der vom Internet aus erreichbar ist (wir nennen ihn Host 1) und sich im selben LAN befindet wie der Host, mit dem Sie eine Verbindung herstellen möchten (Host 2), können Sie einen Befehl eingeben, der die Verbindung von Ihrem Computer (auf einem bestimmten lokalen Port) über Host 1 umleitet, und Host 1 leitet Ihren Datenverkehr an den nicht portweitergeleiteten Host 2 in seinem LAN weiter.

Der Befehl lautet wie folgt und muss auf dem lokalen Computer ausgeführt werden, mit dem Sie eine Verbindung zu Host 2 herstellen möchten

ssh -L [local-port-to-open]:[local-IP-of-Host-2-according-to-Host-1]:[port-to-connect-to-on-Host-2-from-Host-1] [user-of-Host-1]@[Host-1-address]

Dadurch wird ein Port auf Ihrem Computer (Ihr [local-port-to-open]Argument) geöffnet, der von SSH verwaltet wird. Der gesamte Datenverkehr von diesem Port wird durch den verschlüsselten Tunnel gesendet, der durch die [user-of-Host-1]@[Host-1-address]Argumente erstellt wurde, wie in angegeben an Host-2 [local-IP-of-Host-2-according-to-Host-1]:[port-to-connect-to-on-Host-2-from-Host-1]. Diese Methode wird als lokale Portweiterleitung bezeichnet (ich verstehe Remote-Portweiterleitung nicht wirklich).

Nehmen wir beispielsweise an, ich möchte von meinem örtlichen Café aus eine Verbindung zu Host 2 herstellen, der nicht portweitergeleitet ist, und dabei Host 1 verwenden, der portweitergeleitet ist, um die Verbindung in sein LAN umzuleiten. Beachten Sie, dass dadurch ein PTS auf dem Remotecomputer geöffnet wird, aber dies kann ignoriert werden, bis Sie diesen Tunnel schließen möchten. Dann können Sie die Terminalsitzung einfach wie gewohnt schließen.

Die öffentliche IP von Host 1 ist 201.31.103.212(das NAT, das sowohl Host 1 als auch Host 2 einschließt) auf Port 1337für SSH. Host 2 im LAN hat die lokale IP 192.168.254.40und verwendet Port 22für SSH. Der Login-Benutzername von Host 1 ist fish.

Ok, ich sage einfach, dass ich den lokalen Port 8080ungenutzt habe und ihn vorübergehend für diese Demonstration verwenden kann.

Den Befehl würde ich folgendermaßen formulieren:

ssh -L 8080:192.168.254.40:22 [email protected]

Dadurch wird der Port auf Ihrem lokalen Computer geöffnet und die Daten werden an den Port (Host 2) 8080gesendet, entsprechend Host 1 (das ist ).192.168.254.4022[email protected]

Wenn Sie nun per SSH auf Host 2 zugreifen möchten, müssen Sie lediglich Ihren Computer auf Port angeben 8080. Nehmen wir an, der Login-Benutzername von Host 2 lautetturtle

ssh [email protected] -p 8080

SSH verwaltet Ihren Port 8080und sendet Ihre SSH-Anfrage an Host 1, der sie an Host 2 weiterleitet. Beachten Sie, dass Sie statt 127.0.0.1auch einfach verwenden können localhost. Das ist nur eine Vorliebe.

Eine weitere Verwendung der SSH-Portweiterleitung sind Proxys.

Szenario: Ich bin mit meinem privaten Laptop in der Schule und möchte auf Twitter zugreifen, das blockiert ist (in meiner High School ist es das tatsächlich, also habe ich genau das gemacht). Ich habe zu Hause einen SSH-Host mit Portweiterleitung und der IP 39.34.81.56auf Port . Ich möchte eine Verbindung zu Twitter (Webserver werden am häufigsten auf Port gehostet ) von meinem Port auf meinem Laptop über meinen Host zu Hause 1337herstellen . Ich würde den Befehl auf meinem Laptop eingeben:808080

ssh -L 8080:twitter.com:80 [email protected] -p 1337

Jetzt kann ich localhost:8080über meinen Webbrowser darauf zugreifen und Twitter wird durch meinen verschlüsselten Tunnel von den Servern zu mir nach Hause und dann zu meinem Laptop in der Schule weitergeleitet.

Mit derselben Methode kann ich mich öffentlich bei einer Website anmelden, die kein SSL verwendet (z. B. Pastebin), und sicher sein, dass meine Anmeldeinformationen sicher sind, da sie mit SSH verschlüsselt und nur ohne SSH von meinem Zuhause gesendet werden, dessen Sicherheit ich sichergestellt habe.

Viel Glück!

BEARBEITEN: Nur eine Randbemerkung, die hier angezeigten IP-Adressen sollten keine gültigen Adressen sein, aber für den unwahrscheinlichen Fall, dass dies der Fall ist, belästigen Sie die Benutzer dieser IPs bitte nicht.

Antwort2

Ja, ich denke also, dass Portweiterleitung die Hole-Punching-Methode ist. Wenn Sie möchten, können Sie Ihren Computer in eine DMZ stellen und das ganze Chaos vermeiden.

verwandte Informationen