Startup script - SSH client session starten und halten

Post new topic   Reply to topic    DD-WRT Forum Index -> Allgemeine Fragen
Author Message
roland-dd
DD-WRT Novice


Joined: 12 Feb 2009
Posts: 45

PostPosted: Wed Oct 18, 2017 8:45    Post subject: Startup script - SSH client session starten und halten Reply with quote
Hallo,

in einem Wohnheim stellt der Betreiber Internet per LAN-Dose bereit.
Der Benutzer bekommt eine feste IP, Netzmaske, Gateway, Nameserver, Benutzernamen und Passwort mitgeteilt. Es gibt kein DHCP.

Mit der festen IP kommt der Benutzer aber nur in das Intranet des Anbieters. Damit das Internetgateway seine Pakete durchlässt, muss der Benutzer zusätzlich mit Benutzernamen und Passwort eine SSH-Verbindung zu einem Anmeldeserver aufmachen und halten. So lange die SSH-Verbindung steht, hat die IP-Adresse Internetzugriff.

Die offizielle Empfehlung für WLAN heißt, sich einen WLAN-Router zu beschaffen, den als Ethernetrouter zu konfigurieren und im LAN des Routers einen Rechner zu betreiben, der die SSH-Verbindung so lange aufrecht erhält, wie weitere LAN-Teilnehmer Internetzugriff benötigen.

Für den Durchschnittsuser mit Laptop und Smartphone ist das nicht gerade ideal.

Als Alternative soll ein TP-Link WR841N mit DD-WRT die SSH-Session zum Anmeldeserver gleich selbst aufmachen und halten.

Ich habe leider wenig Ahnung von Shellscripten und SSH.
Dieses Shellscript lässt jemand auf einem Raspi im LAN seines Routers laufen

Code:
#!/bin/bash

while true
    do
        sshpass -p 'PASSWORT' ssh -t -t -o StrictHostKeyChecking=no MIETERNUMMER@139.18.143.253
        echo "done"
        sleep 5
done


Ist diese "Übersetzung" für die rc_startup richtig?

Code:
nvram set rc_startup='
while true
do
DROPBEAR_PASSWORD='PASSWORT'
ssh -t -t -o StrictHostKeyChecking=no MIETERNUMMER@139.18.143.253
sleep 5
done
'
nvram commit
Sponsor
roland-dd
DD-WRT Novice


Joined: 12 Feb 2009
Posts: 45

PostPosted: Fri Oct 20, 2017 8:49    Post subject: Reply with quote
Die Option StrictHostKeyChecking wird von der Dropbear SSH Implementierung in DD-WRT nicht unterstützt.

Um einen unbekannten Key des remote Hosts automatisch zu akzeptieren, gibt es stattdessen den Schalter '-y'.

Das ist aber nicht das einzige Problem.
Die im DD-WRT Wiki beschriebene Vorgehensweise zur scriptgesteuerten Übergabe des Passworts per Variable DROPBEAR_PASSWORD scheint nicht zu funktionieren.
D.h. der Remote Host fragt trotzdem nach dem Passwort, so dass das o.a. Startup-Script an der SSH-Passworteingabe hängen bleibt.
https://www.dd-wrt.com/wiki/index.php/SSH#Automatic_Login_.28for_shell_scripts.29

Es könnte sein, dass das ein Fehler in DD-WRT ist.
http://www.dd-wrt.com/phpBB2/viewtopic.php?t=307120
sam.vanratt
DD-WRT Novice


Joined: 21 Jul 2008
Posts: 47

PostPosted: Thu Nov 23, 2017 16:29    Post subject: Reply with quote
Hallo Roland
(den Fall hatte ich nie..) hast du mal so alte Methoden wie
echo passwort > ssh.....
probiert?
Gruß
Sam
roland-dd
DD-WRT Novice


Joined: 12 Feb 2009
Posts: 45

PostPosted: Thu Nov 23, 2017 19:34    Post subject: Reply with quote
Wenn ich das richtig verstanden habe, dann geht die von dir vorgeschlagene Variante mit ssh prinzipiell nicht, weil ssh eine neue shell aufmacht.

Die Ursache, warum die Option DROPBEAR_PASSWORD nicht mehr geht, ist inzwischen auch klar: das wurde am 18.4.2015 deaktiviert. Zeitgleich übrigens auch in openwrt/LEDE.

https://github.com/mirror/dd-wrt/commit/067ea1a1efe5621631dde6fdaf2f8ee95b02048e#diff-851da486b641491d761c0295dbe45035

Ich konnte mein Problem inzwischen lösen, indem ich eine dd-wrt Version von vor der Deaktivierung aufgespielt habe.


Last edited by roland-dd on Thu Nov 23, 2017 20:56; edited 1 time in total
sam.vanratt
DD-WRT Novice


Joined: 21 Jul 2008
Posts: 47

PostPosted: Thu Nov 23, 2017 19:44    Post subject: Reply with quote
Hallo Roland
jetzt wo du es so sagst hast du natürlich recht: kann gar nicht geht. Ein Grund wieso es sshpass gibt. Ich habe mit echo früher viel mit rsh oder telnet und Co arbeiten müssen. War auch nur ein Gedanke.
Alte Version: ein hoch auf die archivierten Versionen Smile
Gruß
Sam
roland-dd
DD-WRT Novice


Joined: 12 Feb 2009
Posts: 45

PostPosted: Thu Nov 23, 2017 20:55    Post subject: Reply with quote
Ich bin ja schon noch einen Schritt weiter.
Nachdem der erste Router mit der alten Version lief, gab es im Wohnheim sofort die nächsten Anfragen, ob das nicht auch für weitere Router machbar wäre.

Da war dann schnell mit der alten dd-wrt Version Schluss, weil viele Router zu neu sind.

Zuerst hatte ich die Hoffnung, dass openwrt oder LEDE das Problem nicht haben. Das hatte sich dann aber relativ schnell zerschlagen.
Im LEDE Forum, dann das gleiche Spiel wie hier, niemand reagiert auf die Anfrage, warum das nicht mehr geht.
Habe dann den Dropbear Programmierer direkt angeschrieben, ob er eine Idee hätte, warum das Feature in allen 3 Routerprojekten seit 2015 nicht mehr geht. Nach ein paar kurzen Tests, dass es nicht an mir liegt, fand er dann relativ schnell den Patch, der die Standardeinstellung in den Projekten deaktiviert.

Von da war es dann nicht mehr weit, dass ich mir ein LEDE-build-system gebaut, den Patch angepasst und dropbear neu übersetzt habe, so dass es bei mir jetzt mit der aktuellen LEDE-Version auch wieder funktioniert.
sam.vanratt
DD-WRT Novice


Joined: 21 Jul 2008
Posts: 47

PostPosted: Fri Nov 24, 2017 6:08    Post subject: Reply with quote
Dem nichts passiert, der neu kompiliert Wink
Display posts from previous:    Page 1 of 1
Post new topic   Reply to topic    DD-WRT Forum Index -> Allgemeine Fragen All times are GMT

Navigation

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You can attach files in this forum
You can download files in this forum