SSH-Tunnel im Hintergrund


17

Ich habe einen Prozess, der erwartet, dass eine SSH-Tunnelverbindung korrekt ausgeführt wird, und ich habe den folgenden Befehl verwendet:

ssh -L localhost:3306:127.0.0.1:3306 username@<mysql-machine-ip-address> -N &

Ich habe dies 8 Monate lang erfolgreich ausgeführt. Vor kurzem musste unser Hosting-Anbieter Hardware-Änderungen vornehmen, um unseren Computer zu aktualisieren, und unseren Computer mit einem neuen Kernel für Ubuntu aktualisiert haben. Es ging von 4.8.3-x86_64-linode76 auf 4.8.6-x86_64-linode78.

Nach einigen Problemen mussten wir den Befehl folgendermaßen aktualisieren:

ssh -L localhost:3306:127.0.0.1:3306 username@<mysql-machine-ip-address> -fN

Bei der Recherche in der ssh-Dokumentation den Parameter -f

Fordert ssh auf, kurz vor der Befehlsausführung in den Hintergrund zu gehen. Dies ist nützlich, wenn ssh nach Passwörtern oder Passphrasen fragen soll, der Benutzer dies jedoch im Hintergrund wünscht. Dies impliziert -n. Die empfohlene Methode zum Starten von X11-Programmen an einem Remotestandort ist die Verwendung von ssh -f host xterm.

Bei der Suche nach dem Befehl bash für "&"

Stellen Sie einen Prozess in den Hintergrund (siehe Multitasking unter "Zwischenverwendung von> UNIX-Betriebssystem").

Gibt es grundsätzlich einen Unterschied zwischen diesen beiden Befehlen?

Antworten:


22

Ja da ist. ssh &läuft sshvon Anfang an im Hintergrund. ssh -fBeginnt sshim Vordergrund und ermöglicht die Eingabe von Passwörtern usw. und sshstellt sich erst danach in den Hintergrund, bevor der angeforderte Befehl ausgeführt wird.


Haben Sie eine Ahnung, warum ich mit dem neuen Server gezwungen wäre, das ssh -f anstelle des ssh & zu verwenden? Darüber hinaus klingt es so, als ob ssh -f ein besserer Ansatz ist. Würden Sie dem zustimmen?
Develop4fun2011

Vielleicht hat das neue System einen neueren (oder nur einen anderen) SSH-Client?
AlexP
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.