Ich habe einen Mac-Laptop und hätte gern einen dauerhaften SSH-Tunnel, damit ich mich immer von außerhalb des lokalen Netzwerks anmelden kann. Ich suche nach etwas, das funktioniert, wenn der Server zunächst nicht erreichbar ist (z. B. wenn ich beim Booten keine Internetverbindung habe) und den Tunnel automatisch startet, wenn dies möglich ist.
Ich habe versucht, eine @reboot autossh
Zeile in meine Crontab einzufügen, aber ich habe festgestellt, dass Sitzungen autossh
immer wieder mit einer Trennung beginnen und autossh
beendet werden, wenn der erste Versuch fehlschlägt. Meine aktuelle Problemumgehung besteht aus einem kleinen Skript und einem Crontjob:
# crontab
/home/blackl/bin/script &!
# script
#!/bin/sh
while true; do ssh -Ngn -R $some_port:localhost:22 $server; sleep 30; done;
Gibt es eine bessere Möglichkeit, dies zu tun, oder muss ich mich vorerst damit zufrieden geben?
Antwort1
Es tut mir leid, dass dies eine sehr späte Antwort ist. Vielleicht sind Sie bereits auf diese Lösung gestoßen, aberHierSo kann dies mit dem Launchctl-Mechanismus von OS X durchgeführt werden.
Ich glaube nicht, dass er es hatganzrichtig; Sie würden den Schlüssel „KeepAlive“ (mit dem Wert „true“) anstelle des veralteten Schlüssel-/Wertpaars „OnDemand/false“ verwenden. Außerdem weiß ich nicht, warum er an denselben Port auf dem Remote-Host (1666) weiterleitet wie im Vergleich zu 22. Trotzdem – Sie verstehen, was ich meine. Bei mir läuft die Verbindung zu unserem Webserver einwandfrei.Vieleleganter als eine Endlosschleife.
Oh, und stattLingondie er erwähnt, können Sie die wunderbareStart Steuerungum es einzurichten, zu ändern und zu überwachen. Wenn Sie mit launchctl nicht vertraut sind, empfehle ich Ihnen dringend, die Einführung im Programm oder auf der Website zu lesen, um zu verstehen, was passiert. Tut mir leid – ich hätte auf die Einführung verlinkt, aber ich habe mir noch nicht genug Reputation aufgebaut :/