shell auf Home Assistant und ssh

Bei meinen ersten Versuchen mit Home Assistant stieß ich immer wieder auf Anleitungen, die neue Software installiert haben. Für die Installation ist aber eine root-Shell notwendig. Für alle, die wie ich danach gesucht haben, gibt es nun diesen kleinen Artikel.

Mein Home Assistant läuft als VM unter Proxmox. Dieser gewährt einem Zugriff auf die Console. Dort läuft allerdings „nur“ die Home Assistant Kommandozeile. Diese erlaubt aber nur einen eingeschränkten Befehlsumfang und erst recht keine Softwareinstallationen. Ein „help“ (oder „ha help“) zeigt verfügbare Befehle. Dieser Befehl zeigt aber nicht alle Befehle an.

Einer der Befehle, die nicht aufgeführt werden, ist der „login“ Befehl. Dieser öffnet eine root-Shell, in meiner Installation eine ash. Aber leider leider ist diese Webshell noVNC alles andere als komfortabel.

  • das Tastaturlayout ist auf US eingestellt
  • kein Copy und Paste möglich
  • wirkt träge

Allein deswegen lohnt sich schon einen ssh-Zugang einzurichten. Es gibt den einfachen Weg über das Add-on „Advanced SSH & Web Terminal“. Es spricht nicht viel dagegen, es zu benutzen, aber es ist halt ein Add-on, sollte Home Assistant mal nicht starten, stehen die Chancen gut, dass es auch nicht startet. Der etwas härtere Weg ist den bereits vorhandenen dropbear-SSH-Server zu aktivieren. Der ist eigentlich für Entwickler gedacht.

Also Obacht, nach dem Einrichten habt Ihr eine root-Shell, die direkt auf das System geht. Damit könnt ihr allerhand kaputt machen. Für weitere Informationen siehe den Artikel Debugging the Home Assistant Operating System. Seid gewarnt.

Eigentlich geht das recht schnell

  1. Schlüsselpaar erzeugen
  2. Die Datei .ssh/authorized_keys auf Home Assistant erzeugen
  3. dropbear starten

Schüsselpaar erzeugen

Unter Windows bietet sich putty an. Zur Sammlung gehört das Werkezug PuTTYgen um ein Schlüsselpaar zu erzeugen. FÜr Linux verweise ich auf meinen Blogartikel über ssh.

Die Datei .ssh/authorized_keys auf Home Assistant erzeugen

Der Task klingt easy, vielleicht ist er das auch, aber nicht für mich. Die oben erwähnte Anleitung geht davon aus, dass wir eine echte Maschine haben, in der wir einen speziellen USB-Stick stecken können. Auf diesen kopiert man den öffentlichen Schlüssel in Form der „authorized_keys“ Datei. Über „ha os import“ importiert Home Assistant dann den Schlüssel.

Nun ja, ich habe keinen USB-Stick, keine echte Maschine, sondern einen Proxmox-Server. Vermutlich könnte man den USB-Stick an den Proxmox Rechner stecken und diesen dann durchreichen. Vielleicht. Keine Ahnung. Vielleicht ginge es auch erst das erwähnte Add-on zu installieren. EIgentlich will ich ja nur knapp 400 Byte auf die Maschine kopieren.

Da Copy und Paste nicht funktioniert, kam ich auf die glorreiche Idee, einen Makrorekorder zu verwenden, der den Schlüssel Zeichen für Zeichen überträgt. Meine Wahl fiel auf AutoHotkey. Das klappt tatsächlich hat aber einige Fallstricke.

Erwähnte ich schon, dass die Webshell träge ist? 400 Byte einfach rüberpusten ist nicht. Also immer schön in Häppchen rüberschicken.

Erwähnte ich schon, dass das Tastaturlayout nicht deutsch ist? Hat euer Public Key ein „z“ wird daraus ein „y“ und umgekehrt. Hat euer Schlüssel ein „+“ solltet ihr ein „`“ schicken. Damit AutoHotkey das auch verschickt, braucht man zwei davon. Für mehr Spaß schaut hier.

Die Makrodatei sah dann so aus

Sleep 3000
Send „sshßrsa AAAA“
Sleep 1000
Send „yy„“

Die Wartezeiten sind notwendig, um die Webshell nicht zu überlasten, die ersten 3 Sekunden, damit man noch Zeit hat, in das richtige Fenster zu wechseln.

dropbear starten

Ist die Datei erstmal an Ort und Stelle, muss dropbear nur noch davon unterrichtet werden.

# systemctl start dropbear

Danach steht ein ssh-Server auf Port 22222 zur Verfügung.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

WordPress Cookie Hinweis von Real Cookie Banner