Meiner Schwester half ich bei PC-Problemen oft, in dem Sie einen ssh-Server startete, und ich mich dann einloggte.
Jup. Lokaler Test hat geklappt. Jeder benötigt einen Login (user/passwort) auf der anderen Seite. Ich bin vorbereitet - sie kann kommen.
Wie du selbst schreibst benötigst du einen Benutzer auf ihrem Rechner ja sowieso.
Aber ich habe mir die ganze Geschichte noch mal gestern abschließend überlegt wie sie zu realisieren wäre wenn du z.B. auf auf dem System von Bob keine zusätzlichen Benutzer einrichtet werden können (z.B. bei einem Account auf einem vServer von einem Bekannten, der Bob keinen zweiten Account spendieren will oder kann).
Auf dem Rechner von Alice könnte man SSH-Keys generieren (ssh-keygen -t rsa) und dann würde man diesen pub.-SSH-Key bei Bob in ~/.ssh/authorized_keys wie folgt zulassen:
~/.ssh/authorized_keys (Auszug):
command="/usr/bin/sleep 10000" ssh-rsa ....
Verbindet sich nun Alice per:
ssh -R 2222:localhost:22 bob@88.77.4.3 (Option -N nicht mehr nötig)
so kann Alice, da sie ja das Passwort von Bob nicht kennt, maximal den erlaubten SSH-Key nutzen. Dieser ist jedoch mit der Anwendung "/usr/bin/sleep 10000" verbunden. Somit bleibt der Tunnel für Bob 10000 Sekunden offen bzw. bis Alice die Verbindung trennt. Wichtig ist in diesem Zusammenhang dass auch sftp für Alice nicht funktioniert. Nachteil ist, dass Bob den sleep-Befehl auf seinen Rechner abschließend evtl. noch killen muss.
Alice benötigt auf dem System von Bob im übrigen deswegen keine sudo-Berechtigung, da der Tunnel mit dem Port "2222" und somit > 1023 verknüpft ist. Alice braucht im übrigen nicht mal sudo-Berechtigung auf ihrem eigenen Rechner.