From ef06d24202aedba9d974667d889a2daae9fdf757 Mon Sep 17 00:00:00 2001 From: Christian Date: Sun, 5 Apr 2015 16:57:27 +0200 Subject: [PATCH 01/11] =?UTF-8?q?Sch=C3=BCsselupdate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1c5b14b..f78c6de 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,10 @@ Das Schließsystem läuft auf einem RaspberryPi mit der Erweiterungsplatine "PiFaceDigitalIO". +##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**. ### Input: * ssh-login * Klingel @@ -10,4 +14,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 From a4539fae1da9a60d50565e9618cec2a0e5c4dd82 Mon Sep 17 00:00:00 2001 From: Christian Date: Sun, 5 Apr 2015 17:09:34 +0200 Subject: [PATCH 02/11] =?UTF-8?q?Sch=C3=BCsselformate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f78c6de..6e07cff 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,49 @@ Das Schließsystem läuft auf einem RaspberryPi mit der Erweiterungsplatine "PiFaceDigitalIO". -##Schlüsselupdate +##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 + + ### Input: * ssh-login * Klingel From 1f7515a0ed9e583a05ae21749e8146197c5979d7 Mon Sep 17 00:00:00 2001 From: Christian Date: Sun, 5 Apr 2015 17:20:41 +0200 Subject: [PATCH 03/11] =?UTF-8?q?Sch=C3=BCsselformate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 6e07cff..7fd2c0e 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,16 @@ Das Schließsystem läuft auf einem RaspberryPi mit der Erweiterungsplatine "PiFaceDigitalIO". +##Software +Der Deamon besteht aus folgenden Dateien. + +* foodoor +* foodoord +* foodoord.conf +* foodoord_initd +* foodoor-ssh-wrapper +* foodoor-update-keydb + ##Schüssel ###Schlüsselupdate @@ -13,37 +23,35 @@ Aktualisiert die die Schlüssel auf der Tür und baut die *Authorized_Keys* für Der foodoord akzeptiert nur Pub-Keys im *OpenSSH2-Format*. Keys lassen sich unter anderem mit OpenSSH oder PuTTygen erzeugen. ###OpenSSH#### -####Keys generieren#### +####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 +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 +###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 From 7d1df01a3e3f3fd2fe9b9621b379a6d547067571 Mon Sep 17 00:00:00 2001 From: Christian Date: Sun, 5 Apr 2015 17:30:35 +0200 Subject: [PATCH 04/11] =?UTF-8?q?Abh=C3=A4ngigkeiten?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7fd2c0e..46587d6 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,20 @@ Das Schließsystem läuft auf einem RaspberryPi mit der Erweiterungsplatine "PiFaceDigitalIO". -##Software +##Software## + +###Installertion### +apt-get install python-pifacedigitalio + +Um das Paket zu installieren muss die */etc/apt/sources.list* die +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 + +wget http://archive.raspbian.org/raspbian.public.key -O - | sudo apt-key add - + + + +###Dateiliste### Der Deamon besteht aus folgenden Dateien. * foodoor From 4b7406b60af2b152b48d09f7d9c559ca24e98894 Mon Sep 17 00:00:00 2001 From: Christian Date: Sun, 5 Apr 2015 17:32:41 +0200 Subject: [PATCH 05/11] =?UTF-8?q?Abh=C3=A4ngigkeiten?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 46587d6..c9c70ae 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,8 @@ Das Schließsystem läuft auf einem RaspberryPi mit der Erweiterungsplatine "PiF ###Installertion### apt-get install python-pifacedigitalio -Um das Paket zu installieren muss die */etc/apt/sources.list* die +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 From e0dc1222ed02b97027286e9bc6d3b5744d72e1c9 Mon Sep 17 00:00:00 2001 From: Christian Date: Sun, 5 Apr 2015 17:34:26 +0200 Subject: [PATCH 06/11] =?UTF-8?q?Abh=C3=A4ngigkeiten?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c9c70ae..6c53055 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Das Schließsystem läuft auf einem RaspberryPi mit der Erweiterungsplatine "PiF ##Software## -###Installertion### +###Installation### apt-get install python-pifacedigitalio Um das Paket zu installieren muss die */etc/apt/sources.list* angepasst werden. From 10516d232fde9f5ecc235a26e41578f8a59dacd7 Mon Sep 17 00:00:00 2001 From: Christian Date: Sun, 5 Apr 2015 17:38:38 +0200 Subject: [PATCH 07/11] =?UTF-8?q?Abh=C3=A4ngigkeiten?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6c53055..c99d59c 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ Das Schließsystem läuft auf einem RaspberryPi mit der Erweiterungsplatine "PiF 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
wget http://archive.raspbian.org/raspbian.public.key -O - | sudo apt-key add - From c1de35714991654e0dbef742760ab4aaf505d7d3 Mon Sep 17 00:00:00 2001 From: Christian Date: Sun, 5 Apr 2015 17:39:43 +0200 Subject: [PATCH 08/11] =?UTF-8?q?Abh=C3=A4ngigkeiten?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c99d59c..9e0d8fe 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,9 @@ Das Schließsystem läuft auf einem RaspberryPi mit der Erweiterungsplatine "PiF 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
+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 wget http://archive.raspbian.org/raspbian.public.key -O - | sudo apt-key add - From 7d38b27c0598f012c8e65766dbcf76bb31dfef07 Mon Sep 17 00:00:00 2001 From: Christian Date: Sun, 5 Apr 2015 17:47:26 +0200 Subject: [PATCH 09/11] =?UTF-8?q?Abh=C3=A4ngigkeiten?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9e0d8fe..3456fa0 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ Um das Paket zu installieren muss die */etc/apt/sources.list* angepasst werden. 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 - From a3add44c29955cbbce3099f78d547ff6d707de4b Mon Sep 17 00:00:00 2001 From: m Date: Mon, 13 Apr 2015 17:11:53 +0200 Subject: [PATCH 10/11] Allow keys greater than 4096 bit --- foodoor-update-keydb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/foodoor-update-keydb b/foodoor-update-keydb index fa9670f..a59f3a5 100755 --- a/foodoor-update-keydb +++ b/foodoor-update-keydb @@ -24,8 +24,8 @@ 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 From fe2b2757791bf626e8bf0c0e0d992a091e123bd1 Mon Sep 17 00:00:00 2001 From: gammlaa Date: Fri, 17 Jul 2015 19:34:22 +0200 Subject: [PATCH 11/11] Fix for missing LF --- foodoor-update-keydb | 1 + 1 file changed, 1 insertion(+) diff --git a/foodoor-update-keydb b/foodoor-update-keydb index a59f3a5..4031c54 100755 --- a/foodoor-update-keydb +++ b/foodoor-update-keydb @@ -31,6 +31,7 @@ do 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