Um anderen schnell zu helfen, ist SSH sehr nützlich, insbesondere in Kombination mit GNU Screen. Es ist üblich, dass Benutzer sich hinter einem NAT-Router befinden. Selbst wenn der Benutzer den Router konfigurieren kann, dauert es einige Zeit, bis er sich das Passwort merken, die richtigen Optionen finden usw.
Was ist der einfachste Weg, um anderen über SSH zu helfen, wenn sie sich hinter einem NAT-Router befinden?
Derzeit fordere ich die Benutzer auf , ein Terminal zu öffnen und den folgenden Befehl auszuführen und mir ihre IP-Adresse von einer Site wie http://ip.appspot.com/ zu übermitteln :
sudo apt-get install openssh-server ssh-import-id && ssh-import-id lekensteyn
Dies funktioniert natürlich nicht, wenn sie sich hinter einem NAT-Router befinden oder eine persönliche Firewall konfiguriert ist. Gibt es so etwas wie:
sshd --accept-help-from lekensteyn
Ich suche keine Alternativen wie Teamviewer, nur eine Shell wie SSH. Es sollte auch Open Source sein.
quelle
Basierend auf Ihren spezifischen Bedürfnissen würde ich wahrscheinlich:
Ich habe auch vergessen, dass Sie den umgekehrten SSH-Tunnel ausprobieren können , obwohl diese Lösung technisch einen weiteren - Mittelcomputer - benötigt, um zu funktionieren.
Weitere Infos finden Sie hier
quelle
Normalerweise richte ich einen IPv6-Tunnel ein (von sixxs.net oder he.net), wenn sie noch kein IPv6 haben. Auf diese Weise hat der Computer eine statische Adresse und ich muss mich nicht mit NAT anlegen. Ich richte auch gerne eine schlüsselbasierte Authentifizierung ein (dann müssen sie dir nicht ihr Passwort mitteilen).
Sixxs hat einen eigenen Client, den Sie verwenden. Es funktioniert hinter fast jedem NAT und wird automatisch aktualisiert, wenn sich die IPv4-Adresse ändert. Sie haben Anweisungen zum Einrichten und es ist für Ubuntu gepackt.
Hurricane Electric verwendet einen Tunnel, in dem IPv6-Pakete als Nutzdaten eines IPv4-Pakets gesendet werden. Im Gegensatz zu Sixxs wird kein TCP / UDP verwendet. Dies bedeutet, dass das NAT, hinter dem Sie sich befinden, das Weiterleitungs-PROTOKOLL 41 (nicht den Port) unterstützen muss und nur ein Computer hinter dem NAT es verwenden kann. Die Software zur Verwendung eines solchen Tunnels ist in Ubuntu integriert.
Für HE verwende ich so etwas in
/etc/network/interfaces
:Das andere, was Sie tun müssen, ist, Ihren Tunnelendpunkt zu aktualisieren. Da Sie nicht wissen, wann sich die externe IP ändert, müssen Sie nur versuchen, den Endpunkt alle paar Minuten zu aktualisieren. Sie könnten so etwas verwenden und es von cron ausführen:
quelle
Im Laufe der Jahre habe ich eine grafische Benutzeroberfläche entwickelt, die genau die Anforderungen des OP erfüllt. Allerdings ist ein SSH-Zugriff auf einen dritten Server mit öffentlicher IP-Adresse erforderlich, wie von Pavlos vorgeschlagen. Hier finden Sie die Debian-Pakete und die Anleitung:
http://pietrobattiston.it/reachme
Beachten Sie, dass es (noch) nicht in der Lage ist, sich um die Erstkonfiguration zu kümmern - Sie müssen sich nämlich die RSA-Schlüssel für die passwortlose Verbindung einrichten. Einmal eingerichtet, können Sie mit "reachthem" sehen, ob "reachme" verbunden ist, und eine ssh-Shell öffnen, das Dateisystem durchsuchen und den Bildschirm anzeigen (experimentell).
Natürlich brauchen Sie keinen dritten Computer, wenn Ihr Computer selbst eine öffentliche IP-Adresse hat, wie in der Antwort von ændrük. Der Vorteil der grafischen Benutzeroberfläche besteht natürlich darin, dass der Remote-Benutzer keinen Befehl in ein Terminal eingeben muss. Ein Teil dieses Vorteils geht jedoch verloren, wenn der Remote-Benutzer reachme installieren muss. Deshalb installiere und richte ich reachme immer für alle ein, auf denen ich Ubuntu installiere.
quelle