[email protected]$ autossh -R 12345:localhost:22 [email protected]
Später:
[email protected]$ autossh -L 23456:localhost:12345 [email protected]
[email protected]$ ssh [email protected] -p 23456
Was Sie tun könnten, ist Folgendes:Leiten Sie in Schritt 1 einen Remote-Port vom Büro-PC an den Server weiter (12345
wird als Beispiel verwendet, jeder Port>1024 sollte ausreichen). Wenn Sie sich jetzt mit 12345 auf dem Server verbinden, sollten Sie mit Port 22 auf dem Büro-PC verbunden sein.
Leiten Sie in Schritt 2 den Port 23456 von Ihrem Heimcomputer an 12345 auf dem Server weiter (von wo er an officepc:22 weitergeleitet wird, wie in Schritt 1 eingerichtet)
In Schritt 3 verbinden Sie sich mit Ihrem Büro-PC-Login mit dem lokalen Port 23456 . Diese wird von Schritt 2 an Port 12345 auf Ihrem Server und von Schritt 1 an Ihren Büro-PC weitergeleitet.
Beachten Sie, dass ich autossh für die Weiterleitungen verwende, da es sich um einen ssh-Wrapper handelt, der den Tunnel automatisch wieder verbindet, falls er getrennt wird. normales ssh würde jedoch auch funktionieren, solange die Verbindung nicht abbricht.
Es gibt eine mögliche Schwachstelle:Jeder, der sich mit localhost:12345 auf serverpc verbinden kann, kann sich jetzt mit officepc:22 verbinden und versuchen, sich dort zu hacken. (Beachten Sie, dass Sie, wenn Sie einen SSH-Server betreiben, ihn sowieso über den standardmäßig aktivierten Basisschutz hinaus sichern sollten; ich empfehle zumindest, die Root-Anmeldung und die Passwort-Authentifizierung zu deaktivieren - siehe z. B. hier)
Bearbeiten :Ich habe dies mit der gleichen Konfiguration überprüft, und es funktioniert. GatewayPorts no
betrifft nur die Ports, die für die ganze Welt offen sind, nicht lokale Tunnel. Dies sind die weitergeleiteten Ports:
homepc:
outgoing ssh to serverpc:22
listening localhost:23456 forwarded through ssh tunnel
serverpc:
listening ssh at *:22
incoming localhost ssh tunnel (from homepc) forwarded to localhost:12345
listening localhost ssh tunnel (from officepc) forwarded from localhost:12345
officepc:
outgoing ssh to serverpc:22
incoming localhost through ssh tunnel (from serverpc) forwarded to localhost:22
Soweit es den Netzwerkstapel betrifft, handelt es sich also um den gesamten lokalen Datenverkehr auf den jeweiligen Loopback-Schnittstellen (plus SSH-Verbindungen zu serverpc); daher GatewayPorts
wird überhaupt nicht überprüft.
Es gibt jedoch die Direktive AllowTcpForwarding
:wenn das no
ist , schlägt diese Einrichtung fehl, da überhaupt keine Weiterleitung zulässig ist, nicht einmal über die Loopback-Schnittstelle.
Warnhinweise :
-
Wenn Sie autossh und aktuelles ssh verwenden, möchten Sie vielleicht
ServerAliveInterval
von ssh verwenden undServerAliveCountMax
um den Tunnel am Laufen zu halten. Autossh hat eine eingebaute Überprüfung, aber anscheinend hat es einige Probleme mit Fedora.-M0
deaktiviert das und-oServerAliveInterval=20 -oServerAliveCountMax=3
überprüft, ob die Verbindung besteht - versucht es alle 20 Sekunden, wenn es 3x hintereinander fehlschlägt, stoppt ssh (und autossh erstellt eine neue):autossh -M0 -R 12345:localhost:22 -oServerAliveInterval=20 -oServerAliveCountMax=3 [email protected] autossh -M0 -L 23456:localhost:12345 -oServerAliveInterval=20 -oServerAliveCountMax=3 [email protected]
-
Es kann nützlich sein, den SSH-Tunnel mit
-oExitOnForwardFailure=yes
neu zu starten, wenn die Weiterleitung fehlschlägt - Wenn der Port bereits gebunden ist, erhalten Sie möglicherweise eine funktionierende SSH-Verbindung, aber keinen weitergeleiteten Tunnel. -
mit
~/.ssh/config
für die Optionen (und Ports) ist ratsam, sonst werden die Kommandozeilen zu ausführlich. Zum Beispiel:Host fwdserverpc Hostname serverpc User notroot ServerAliveInterval 20 ServerAliveCountMax 3 ExitOnForwardFailure yes LocalForward 23456 localhost:12345
Dann können Sie nur den Server-Alias verwenden:
autossh -M0 fwdserverpc
Wenn Sie von zu Hause aus per ssh auf den internen Server und vom internen Server auf Ihren Linux-Computer im Büro zugreifen können, können Sie von zu Hause aus den ssh ProxyCommand
verwenden über nc
lautlos durch den Server zum internen Rechner zu springen (netcat)
# ~/.ssh/config on your home machine:
Host internalpc
ForwardAgent yes
ProxyCommand ssh [email protected] exec nc internal.pc.example.com %p
Dann einfach ssh [email protected]
und Sie werden stillschweigend durch den Server weitergeleitet, ohne dass an beiden Enden Ports oder Tunnel geöffnet werden müssen.
Installieren Sie Robo-TiTO auf dem Computer, auf den Sie remote über SSH zugreifen möchten.
- Damit können Sie von überall aus über Google Talk-Client-Apps auf SSH zugreifen.
- Es ist keine öffentliche IP-Adresse oder spezielle Einstellung erforderlich.
- Es ist kostenlos und Open Source, es werden keine Anwendungsdienste mehr bezahlt.
- Keine Notwendigkeit, den SSH-Port zu öffnen (schützen Sie Ihren Computer).
- Es muss kein Tunneling geöffnet werden (z. B. VPN oder ähnliches)
Die folgenden Installationsanweisungen sind veraltet, da die Website umgezogen ist. Die neue URL lautet https://github.com/formigarafa/robotito
Ich habe ein Skript erstellt (getestet auf meinem Raspbian-Betriebssystem in Raspberry Pi), damit Sie Robo-TiTO einfach auf Raspberry Pi, Debian oder Ubuntu Box (Debian-Paketverteilung) installieren können. Dies sind die Schritte, um Ihr Linux zu erhalten Box fernsteuerbar:
Öffnen Sie Shell Command oder Sie können es Terminal nennen, gehen Sie zu Ihrem Home-Ordner, Laden Sie das Installationsskript per Befehl herunter:
$ wget https://opengateway.googlecode.com/files/robotito
Führen Sie danach das Skript aus, indem Sie den Befehl eingeben:
$ sudo ./robotito
und dann können Sie die Datei
credentials.rb
bearbeiten aus dem Konfigurationsordner von Robo-TiTO mit Ihrem GTalk-Konto und speichern Sie es durch Drücken von Strg +X und Y . Standardmäßig wird der Nano-Editor verwendet.Ausführen des Robo-TiTO aus dem Robo-TiTO-Ordner per Befehl
$ cd robotito $ ./jabbershd start
Nachdem dies erledigt ist, können Sie SSH von jedem Google Talk-Client aus verwenden. Vergessen Sie nicht, das Robo-TiTO GTalk-Konto zu Ihrem Google Talk-Konto hinzuzufügen, und testen Sie es, indem Sie miteinander chatten, bevor Sie das Konto verwenden.