Starten Sie den Autossh-Reverse-Tunnel automatisch, wenn das Netzwerk hochgefahren wird


7

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_nameBenutzernamen 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:

  1. Idealerweise möchte ich A & B in einem Schritt manuell ausführen.
  2. Und ich brauche die eingeschränkte Client -> Mittelsmann- autosshVerbindung, um vollautomatisch zu sein.

Antworten:


4

OK, endlich hat es funktioniert. Die Details finden Sie in dieser Frage: Remotedesktop über SSH-Reverse-Tunnel als Ersatz für TeamViewer

Zusammenfassend:

Auf dem Desktop (der Unterstützung erhält):

su -l -c "autossh -M 5234 -N -f -R 1234:localhost:22 user@middleman.com &" username

Auf dem Laptop (Unterstützung geben):

me @ Laptop: ~ / .ssh $ nano config

Host family_desktops
  ProxyCommand ssh middleman_fqdn nc localhost %p
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

Dann verbinde ich mich einfach in einem Schritt mit "Remote Desktop":

me @ Laptop: ~ $ ssh family_desktops -p 1234


Netter Tipp für die Unterstützung von * nix-Boxen, aber dies ersetzt Teamviewer nicht für die Unterstützung von Wind * ws-Umgebungen.
Felipe Alvarez
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.