Ich verbinde mich von meinem Heim-PC über einen Internet-Server, den ich besitze, mit einem eingeschränkten Client (den ich auch besitze) über einen Reverse-SSH-Tunnel.
Ich habe ein Skript, das den eingeschränkten Client für den Mittelsmann dieses SSH-Tunnels einrichtet. Es funktioniert gut, wenn ich das Skript manuell ausführe. Hier ist es:
#!/bin/sh
autossh -M 12399 -oPubkeyAuthentication=yes -oPasswordAuthentication=no -oLogLevel=error -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no -i ~/.ssh/named_id_rsa -R 12345:localhost:22 client@example.com -p 22
Ich möchte, dass es automatisch ausgeführt wird, wenn das Netzwerk auf diesem Computer aktiv ist.
Um dies zu erreichen, habe ich darüber nachgedacht, es zu speichern als: /etc/network/if-up.d/reverse_ssh_tunnel.sh
Ich weiß, ich müsste "~ /" entfernen und den vollständigen Pfad zum privaten Schlüssel als home / username / .ssh / named_id_rsa angeben.
Ich vermute, ich muss den my_script_name
Benutzernamen su -c verwenden , aber ich kann das nicht zum Laufen bringen. Die Lösung dieses Teils meiner Frage ist das Wichtigste. Es muss vollautomatisch und unbeaufsichtigt sein.
Um von zu Hause aus eine Verbindung herzustellen, führe ich zwei manuelle Schritte aus:
A. ssh home -> Mittelsmann
B. ssh Mittelsmann -> eingeschränkter Kunde
Kann A & B in einem einzigen Schritt durchgeführt werden? (Das wäre schön, aber nicht unbedingt erforderlich.)
Zusammenfassend:
- Idealerweise möchte ich A & B in einem Schritt manuell ausführen.
- Und ich brauche die eingeschränkte Client -> Mittelsmann-
autossh
Verbindung, um vollautomatisch zu sein.