diff --git a/README.md b/README.md index 1c5b14b..3456fa0 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,74 @@ Das Schließsystem läuft auf einem RaspberryPi mit der Erweiterungsplatine "PiFaceDigitalIO". +##Software## + +###Installation### +apt-get install python-pifacedigitalio + +Um das Paket zu installieren muss die */etc/apt/sources.list* angepasst werden. + +deb http://archive.raspbian.org/raspbian wheezy main contrib non-free rpi + +deb-src http://archive.raspbian.org/raspbian wheezy main contrib non-free rpi + +Wer apt-get benutzt, kann den Raspbian Pubkey zum keyring hinzufügen. + +wget http://archive.raspbian.org/raspbian.public.key -O - | sudo apt-key add - + + + +###Dateiliste### +Der Deamon besteht aus folgenden Dateien. + +* foodoor +* foodoord +* foodoord.conf +* foodoord_initd +* foodoor-ssh-wrapper +* foodoor-update-keydb + +##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 @@ -10,4 +78,4 @@ Das Schließsystem läuft auf einem RaspberryPi mit der Erweiterungsplatine "PiF ### Output: * Status LEDs * Summer -* Keymatic \ No newline at end of file +* Keymatic diff --git a/foodoor-update-keydb b/foodoor-update-keydb index fa9670f..4031c54 100755 --- a/foodoor-update-keydb +++ b/foodoor-update-keydb @@ -24,13 +24,14 @@ do do valid_key=$(ssh-keygen -l -f ${keyfile}) if [ "$?" -eq "0" ]; then - if [ $(echo "${valid_key}" | cut -d" " -f1) -ne "4096" ]; then - echo "Key size of key ${keyfile} not equal to 4096. Not adding it to key database." >&2 + if [ $(echo "${valid_key}" | cut -d" " -f1) -lt "4096" ]; then + echo "Size of key ${keyfile} is less than 4096. Not adding it to key database." >&2 continue fi fi printf "command=\"/usr/sbin/foodoor ${action}\",no-port-forwarding,no-X11-forwarding,no-agent-forwarding " >> ${outfile} cat "${keyfile}" >> ${outfile} + echo >> ${outfile} done install -d -o ${action} -g nogroup -m 0700 /var/lib/foodoor/${action}/.ssh install -b -S .last -o ${action} -g nogroup -m 0600 ${outfile} /var/lib/foodoor/${action}/.ssh/authorized_keys