Hallo Zusammen,
ich habe schon viele gute Tipps aus dem Forum bekommen, dafür erst mal eine Dank an alle, die an diesem Forum mitschreiben, es ist ein steter Quelle der Erkenntnis. Leider finde ich zu meinem momentanen Problem keine Beiträge, vielleicht hat mir ja noch jemand einen Tipp.
Ich benutze ein paar Controller, auf denen BusyBox v1.18.3 läuft. Nun möchte ich per Skript auf allen Controllern von einem Controller aus das Root-Passwort ändern, ohne dabei noch eine Eingabe machen zu müssen. Verschlüsselung ist kein Thema, da die Controller in eine Nicht-Öffentlichen Netzwerk sitzen. Ich habe mir ein Skript geschrieben, dass ich auf den fernzusteuernden Controller kopiere (per ftpput) um es dann per ssh auszuführen.
xxx.sh
1 2 | #!/bin/sh echo 'root:XYZ' | chpasswd |
Starte ich das Skript per SSH:
1 2 3 4 5 | root@A:# DROPBEAR_PASSWORD='XYZ' ssh -y root@IP_B /mnt/usrspace/data/xxx.sh Host 'IP_B' key accepted unconditionally. (fingerprint md5 4b:87:a3:c7:f4:63:03:aa:10:9e:c4:c9:7e:8d:2e:03) /mnt/usrspace/data/xxx.sh: line 2: chpasswd: not found |
bekomme ich die Fehlermeldung "chpasswd: not found".
Loge ich mich aber nur per SSH ein und starte das Skript manuell funktioniert es:
1 2 3 4 5 6 7 | root@A:# DROPBEAR_PASSWORD='ABC' ssh -y root@IP_B Host 'IP_B' key accepted unconditionally. (fingerprint md5 4b:87:a3:c7:f4:63:03:aa:10:9e:c4:c9:7e:8d:2e:03) root@B:# /mnt/usrspace/data/xxx.sh Password for 'root' changed root@B:# |
Ich bin recht ratlos, weil ich keine Idee mehr habe, was ich noch ausprobieren könnte. Sowas funktioniert ja leider auch nicht, wobei es den Charme hätte, dass man sich das Skript-Kopieren sparen könnte:
1 2 3 4 5 | root@A:# DROPBEAR_PASSWORD='ABC' ssh -y root@IP_B echo 'root:XYZ' | chpasswd Host 'IP_B' key accepted unconditionally. (fingerprint md5 4b:87:a3:c7:f4:63:03:aa:10:9e:c4:c9:7e:8d:2e:03) Password for 'root' changed |
Das ändert allerdings das Passwort auf Controller "A".
Ich bin für jeden Tipp dankbar!