Plugwise Smile P1 – Het SSH wachtwoord aanpassen/resetten

inspector gadget

Hieronder vind je een methode om het SSH wachtwoord op de PlugWise Smile P1 aan te passen of te resetten.

Ter info: Het uitproberen en experimenteren op je eigen hardware is op eigen risico!, de auteur is niet verantwoordelijk voor eventuele schade aan je hardware!

Verstand van Linux?
Voordat ik hiermee begon had ik helemaal geen snars verstand van Linux, maar ik heb er 3 avonden voor gezeten, en tientallen pagina’s met forums en informatie doorgebladerd, lange nachten gemaakt, etc…ik heb hier veel van opgestoken, tijd om het met jullie te delen!

Omdat het NIET handig is om alles via de UART alles toe doen, kun je hiervoor een SSH verbinding gebruiken!, deze zit ook op de smile. Het voordeel van een SSH verbinding is dat het gewoon via het netwerk (WiFi) kan en dus geen seriele verbinding met de computer op de UART nodig is!

Wat is SSH?
Secure Shell (kortweg: SSH) is een protocol uit de toepassingslaag van de TCP/IP-protocolgroep. De term ssh werd gemakshalve ook gebruikt voor het clientprogramma dat het protocol toepast (het serverprogramma heet sshd, ‘Secure Shell daemon’). SSH vervangt oudere protocollen zoals telnet, rlogin, en rsh/rexec door een beveiligbare variant daarvan. De standaard poort van SSH is 22.

SSH maakt het mogelijk om op een versleutelde manier in te loggen op een andere computer, en op afstand commando’s op de andere computer uit te voeren via een shell. Omdat ssh met encryptie werkt, is het voor eventuele afluisteraars, die de (internet)verbinding aftappen, zo goed als onmogelijk om wachtwoorden of commando’s te achterhalen.

Een groot voordeel van SSH is dat ook authenticatie met een publiek/geheim sleutelpaar (private/public key) mogelijk is. Hierdoor is het mogelijk om SSH-toepassingen geautomatiseerd te gebruiken zonder dat er een wachtwoord in de code hoeft te staan. Ook kan op elk systeem dat de publieke sleutel kent, aangemeld worden door het gebruik van de geheime sleutel. Als de eigenaar van de geheime sleutel het wachtwoord van die sleutel wijzigt, heeft dit geen gevolgen voor het sleutelpaar.
(bron: wikipedia)

PuTTY:
Ik gebruik zelf PuTTY als console voor een SSH verbinding.
Als je PuTTY opstart, wordt gelijk het “configuration” scherm getoond, hier klik SSH aan (poort is automatisch: 22) en vul je het IP adres van de smile in:

putty ssh

Na het drukken op “open” komt er een nieuw scherm en wordt er verbinding gemaakt met de smile.

Ter info: Als admin op een Linux omgeving log je altijd in met “root”

Hieronder zie je dat de SSH verbinding van de smile beveiligd is met een wachtwoord:

smile ssh wachtwoord

Terug naar de UART verbinding in “failsave”
Goed, eenmaal de smile in “failsave” modus gestart met een Linux Bash command, kun je al een beetje in de smile graven/rommelen en diverse linux commando’s uitvoeren.

MAAR…in failsave mode:
– worden drivers niet geladen zoals USB, etc…
– worden niet alle partities gemount (alleen “filesystem” (SquashFS))
– worden niet alle modules geladen, zoals WiFi/LAN, etc…
– is alles read-only, aanpassingen hebben geen effect, na reboot staat alles terug (oplossing hieronder)

Wat is de truc?
Het probleem is dat in failsave mode alles “read only” is, je kan wijzigingen aanbrengen, maar deze worden niet opgeslagen, zodoende staat bij een volgende reboot alles weer terug, zoals ook op internet te vinden:
NOTE: The root file system in failsafe mode is the SquashFS partition mounted in “read only” mode. To switch to the normal writable root file system run mount_root and make any changes. Run mount_root now.

Ok, laten we eerst even kijken wat er “gemount” is (mounten leg ik later wel uit)
Linux commando: blkid -o list -c /dev/null

Je ziet dat de “squashfs” (fs = filesystem) gemount is, maar niet in gebruik is, dus we moeten switchen naar het schrijfbare gedeelte, dit doe je met het Linux commando: mount_root

Laten we nu eens weer kijken wat er gemount is met het Linux commando: blkid -o list -c /dev/null

Je ziet nu “(in use)” staan, alle veranderingen die we nu aanbrengen worden nu wel weggeschreven!

Nu kunnen we het wachtwoord aanpassen met het Linux commando: passwd

Geef een nieuw wachtwoord op voor “root” en typ het opnieuw.

Ok, nu heb je het wachtwoord aangepast en het is opgeslagen, nu nog even netjes de smile rebooten met het commando: reboot -f

De smile start nu opnieuw op, verbreek nu de UART verbinding met de smile en sluit de smile op de reguliere manier aan (via de adapter)
Het duurt even voordat de smile opgestart is (je kan aan de led’s zien of de smile opgestart is), eenmaal opgestart log je in via SSH met PuTTY, gebruik dan:

naam = root
wachtwoord = je nieuwe wachtwoord dat je via UART hebt ingesteld

smile ssh wachtwoord ok

Je bent vanaf nu direct verbonden met de PlugWise Smile P1 via een SSH verbinding!