# foodoord Das Schließsystem läuft auf einem RaspberryPi mit der Erweiterungsplatine "PiFaceDigitalIO". ## Konfiguration Falls `/etc/foodoord.conf` nicht vorhanden ist: * `mv /etc/foodoord.conf_example /etc/foodoord.conf` 1. Trage dort die API-Config für den Türstatus ein. 2. Sind wir oben oder unten? Diese Information in `where` eintragen. Also bspw. `where = oben`. ## Software ### Dateiliste Der Deamon besteht aus folgenden Dateien. * foodoor * foodoord * foodoord.conf * foodoord_initd * foodoor-update-keydb Zusätzlich sollte für das git-repo eine Config angelegt werden: /root/.ssh/config ``` Host git.chaospott.de User git Port 2222 IdentityFile ~/.ssh/id_chaospott ``` Das IdentityFile ist der Deploy-SSH-Key, der im [Repo](https://git.chaospott.de/Chaospott/foodoor-keys) hinterlegt ist. ## Schüssel ### Schlüsselupdate `foodoor-update-keydb` Aktualisiert die die Schlüssel auf der Tür und baut die *Authorized_Keys* für die User *open* und *close*. Keys die nicht dem OpenSSH-Format mit 4096 bit entsprechen, werden ignoriert. Wenn das Script von Hand aufgerufen wird, werden die betroffenen Keys angezeigt. Über einen Cronjob werden die Keys alle **5 Min aktualisiert**. ### Schlüsselformate Der foodoord akzeptiert nur Pub-Keys im *OpenSSH2-Format*. Keys lassen sich unter anderem mit OpenSSH oder PuTTygen erzeugen. ### OpenSSH #### Keys generieren * Mit `ssh-keygen -b 4096` lassen sich Keys generieren. * `ssh-add $Pfad_zum_Key` fügt den Key dem ssh-Agent hinzu. Die Option `ssh-add -l` zeigt geladene Keys an. * `ssh-kegen -l -f $Pfad_zum_Key ` gibt den Fingerprint und andere Informationen zurück. ####Keys konvertieren(PuTTy>OpenSSH):#### * `ssh-keygen -i $Pfad_zum_Key > $Pfad_neuer_Pfad.pub<` liest ssh2-kompatible Keys(RFC 4716) ein und speichert diese im OpenSSH-Format. ###PuTTy### Da die Tür nur Keys im OpenSSH-Format verträgt, dürfen auch mit Putty nur OpenSSH-Keys genutzt werden. ###Keys generieren (OpenSSH-Format mit PuttyGen):### 1. PuTTYgen öffnen 2. Unten "Number of Bits in a generated Key:" 4096 eintippen 3. "Generate" klicken um Key zu generieren 4. Nach dem generieren oben im Menu "Conversions" > "Export OpenSSH-Key" 5. Speichern Es ist zu beachten, dass Putty den PrivateKey im Putty-Format benötigt! Das heißt, falls der generierte Key vor dem Export nicht gespeichert wurde, muss der private Key noch konvertiert werden, siehe nächster Punkt! ###Keys konvertieren(OpenSSH>PuTTy):### 1. PuTTYgen öffnen 2. "Load" drücken 3. OpenSSH-Key auswählen 4. "Save Private-Key" drücken 5. Speichern ##Hardware ### Input: * ssh-login * Klingel * Statustaster ### Output: * Status LEDs * Summer * Keymatic