Reverse SSH ist dein Freund. Dazu benötigen Sie einen SSH-Server. Ich werde Ihnen zwei Ansätze dafür geben, der erste geht davon aus, dass Sie einen SSH-Server von Ihrem Computer zu Hause aus öffnen und ausführen können. Ich versuche, stundenweise eine automatische Verbindung herzustellen, damit Ihr PC zu Hause nicht immer online sein muss. Da dies manchmal unmöglich oder schwierig sein kann, füge ich auch eine einfachere und sicherere Lösung hinzu, die allerdings einen Linux-VPS erfordert. Sie sind normalerweise nur 2 $ / Monat.
Lösung 1 - Verwenden Sie nur Ihren PC zu Hause - Eine statische IP-Adresse vorausgesetzt:
Vorbereitung auf dem Debian-Server:
Ich gehe davon aus, dass Sie cron
installiert und ausgeführt haben. Erstellen Sie eine neue Datei /etc/cron.hourly
mit folgendem Inhalt: (vergessen Sie nicht chmod +x
die Datei!)
#!/bin/bash cstate=$(netstat -na | grep "tcp" | grep "<IP-of-home-machine>:22" | tr -s " " | cut -d " " -f 6 | head -n 1) cdate=$(date "+%Y-%m-%d %H:%M:%S") if [[ $cstate == "ESTABLISHED" ]] || [[ $cstate == "TIME_WAIT" ]] then echo "[$cdate] SSH connection up. ($cstate)" >> /var/log/check-ssh-relay.log else echo "[$cdate] SSH connection broken. ($cstate) Reconnecting..." >> /var/log/check-ssh-relay.log ssh -N -f -R 12122:localhost:22 <username>@<IP-of-home-machine> fi
Dies prüft stündlich, ob die Verbindung besteht, und versucht, die Verbindung erneut herzustellen, falls dies nicht der Fall ist. Nützlich, wenn Ihr PC zu Hause nicht immer eingeschaltet ist. Es schreibt Protokollinformationen in /var/log/check-ssh-relay.log
. Die Authentifizierung erfolgt über SSH-Schlüssel. Stellen Sie daher sicher, dass Sie diese Einstellung vorab richtig vorgenommen haben.
Auf Ihrem Computer zu Hause:
Vorausgesetzt, Sie haben den openssh-server ordnungsgemäß eingerichtet, müssen Sie jetzt nur noch Folgendes tun:
$ ssh <server-username>@localhost -p 12122
So erstellen Sie die SSH-Verbindung. SCP, SFTP und co. funktioniert natürlich auch.
Lösung 2 - Verwenden eines anderen VPS als Relais:
Ich benutze diese Lösung persönlich. Meistens, weil ich zu Hause keine statische IP-Adresse habe.
Vorbereitung auf dem Debian-Server:
Genau wie in Lösung 1, außer dass <IP-of-home-machine>
Sie hier die IP des VPS verwenden.
Vorbereitung auf der VPS:
Sie müssen hier lediglich den folgenden Befehl als root-Benutzer ausführen:
$ ssh -g -f -N -L 0.0.0.0:13122:localhost:12122 root@localhost
Das -g
ist hier wichtig, um globale eingehende Verbindungen für diesen Port-Forward zuzulassen.
Auf Ihrem PC zu Hause (oder buchstäblich überall):
Verbinden Sie sich jetzt einfach mit Ihrem VPS über den Port 13122
(wie oben angegeben):
$ ssh <username>@<VPS-IP> -p 13122