{"id":9233,"date":"2017-12-27T04:55:36","date_gmt":"2017-12-27T03:55:36","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=9233"},"modified":"2018-09-07T16:25:35","modified_gmt":"2018-09-07T14:25:35","slug":"sicherheit-gpg-gnupg-key-verwaltung-mit-pass-auf-dem-raspberry-pi-oder-sonst-wo-oder-cooler-kostenloser-passwort-manager-fuer-raspberry-pi","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=9233","title":{"rendered":"Sicherheit: gpg (GnuPG) Key Verwaltung mit pass auf dem Raspberry Pi oder sonst wo oder cooler kostenloser Passwort Manager f\u00fcr Raspberry Pi"},"content":{"rendered":"<p>Wer einen Passwort Manager braucht, kann <a href=\"https:\/\/www.passwordstore.org\/\" rel=\"noopener\" target=\"_blank\">pass<\/a> verwenden. Den gibt es kostenlos f\u00fcr alle Betriebssysteme. Die Passw\u00f6rter werden alle mit gpg Verschl\u00fcsselt und liegen in <strong>~\/.password-store<\/strong> so das sie leicht verwaltet werden k\u00f6nnen. Die Passw\u00f6rter k\u00f6nnen mit unix shell Kommandos so leicht verwaltet werden. Auch eine bash Auto-Vervollst\u00e4ndigung gibt es. Auch eine Git Integration ist m\u00f6glich.<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/12\/bad-passwort-de.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/12\/bad-passwort-de-1024x666.png\" alt=\"\" width=\"525\" height=\"341\" class=\"aligncenter size-large wp-image-9240\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/12\/bad-passwort-de-1024x666.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/12\/bad-passwort-de-300x195.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/12\/bad-passwort-de-768x499.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/12\/bad-passwort-de.png 1120w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/a><\/p>\n<p>Wenn noch kein <a href=\"https:\/\/de.wikipedia.org\/wiki\/GNU_Privacy_Guard\" rel=\"noopener\" target=\"_blank\">gpg<\/a> Key auf dem Raspberry Pi angelegt wurde oder auch sonst noch keiner vorhanden ist, diesen einmal mit<\/p>\n<pre class=\"lang:default decode:true \" >\r\ngpg --gen-key\r\n<\/pre>\n<p>erzeugen. Es muss nur der Name und die E-Mail Adresse angegeben werden, nach einem O muss man ein paar Minuten warten, bis der Key erzeugt wurde:<!--more--><\/p>\n<pre class=\"lang:default decode:true \" >\r\ngpg (GnuPG) 2.1.18; Copyright (C) 2017 Free Software Foundation, Inc.\r\nThis is free software: you are free to change and redistribute it.\r\nThere is NO WARRANTY, to the extent permitted by law.\r\n\r\nNote: Use \"gpg --full-generate-key\" for a full featured key generation dialog.\r\n\r\nGnuPG needs to construct a user ID to identify your key.\r\n\r\nReal name: Thomas Wenzlaff\r\nEmail address: info-anfrage@wenzlaff.de\r\nYou selected this USER-ID:\r\n    \"Thomas Wenzlaff &lt;info-anfrage@wenzlaff.de&gt;\"\r\n\r\nChange (N)ame, (E)mail, or (O)kay\/(Q)uit? O\r\nWe need to generate a lot of random bytes. It is a good idea to perform\r\nsome other action (type on the keyboard, move the mouse, utilize the\r\ndisks) during the prime generation; this gives the random number\r\ngenerator a better chance to gain enough entropy.\r\n\r\n\/\/ Key wurde erzeugt:\r\ngpg: key 38277E44AC49C269 marked as ultimately trusted\r\ngpg: directory '\/home\/pi\/.gnupg\/openpgp-revocs.d' created\r\ngpg: revocation certificate stored as '\/home\/pi\/.gnupg\/openpgp-revocs.d\/xxxxxxxxxxxxx.rev'\r\npublic and secret key created and signed.\r\n\r\npub   rsa2048 2017-12-26 [SC] [expires: 2019-12-26]\r\n      E07030F64964A8A03AFE47AB38277E44AC49C269\r\n      E07030F64964A8A03AFE47AB38277E44AC49C269\r\nuid                      Thomas Wenzlaff <info-anfrage@wenzlaff.de>\r\nsub   rsa2048 2017-12-26 [E] [expires: 2019-12-26]\r\n<\/pre>\n<p>Eine Liste aller Key kann wie folgt angezeigt werden:<!--more--><\/p>\n<pre class=\"lang:default decode:true \" >gpg --list-keys\r\n\/\/ Ergebnis:\r\ngpg: checking the trustdb\r\ngpg: marginals needed: 3  completes needed: 1  trust model: pgp\r\ngpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u\r\ngpg: next trustdb check due at 2019-12-26\r\n\/home\/pi\/.gnupg\/pubring.kbx\r\n---------------------------\r\npub   rsa2048 2017-12-26 [SC] [expires: 2019-12-26]\r\n      E07030F64964A8A03AFE47AB38277E44AC49C269\r\nuid           [ultimate] Thomas Wenzlaff <info-anfrage@wenzlaff.de>\r\nsub   rsa2048 2017-12-26 [E] [expires: 2019-12-26]\r\n\r\n<\/pre>\n<p>Nun updaten wir den Pi und installieren Pass:<\/p>\n<pre class=\"lang:default decode:true \" >\r\nsudo apt-get update\r\nsudo apt-get upgrade\r\nsudo apt-get install pass\r\n\/\/ Checken ob pass l\u00e4uft mit\r\npass version\r\n\/\/ Ausgabe\r\n============================================\r\n= pass: the standard unix password manager =\r\n=                                          =\r\n=                  v1.6.5                  =\r\n=                                          =\r\n=             Jason A. Donenfeld           =\r\n=               Jason@zx2c4.com            =\r\n=                                          =\r\n=      http:\/\/www.passwordstore.org\/       =\r\n============================================\r\n<\/pre>\n<p>Nun muss einmalig der eben erzeugte gpg User (die ID des Keys) mit Pass verkn\u00fcpft werden:<\/p>\n<pre class=\"lang:default decode:true \" >\r\npass init \"Thomas Wenzlaff &lt;info-anfrage@wenzlaff.de&gt;\"\r\n<\/pre>\n<p>Nun kann ein Passwort-Key neu erzeugt werden mit:<\/p>\n<pre class=\"lang:default decode:true \" >pass insert NeuerEintrag\/f\u00fcrBlog\r\nmkdir: Verzeichnis '\/home\/pi\/.password-store\/NeuerEintrag' angelegt\r\nEnter password for NeuerEintrag\/f\u00fcrBlog:\r\nRetype password for NeuerEintrag\/f\u00fcrBlog:\r\n<\/pre>\n<p>Abfrage geht dann mit:<\/p>\n<pre class=\"lang:default decode:true \" >pass NeuerEintrag\/f\u00fcrBlog\r\n\r\n\/\/ dann kommt der Dialog\r\n                                            lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk\r\n                                            x Please enter the passphrase to unlock the OpenPGP secret key:  x\r\n                                            x \"Thomas Wenzlaff &lt;info-anfrage@wenzlaff.de&gt;\"             x\r\n                                            x 2048-bit RSA key, ID 4D50A95A97DDF8C1,                         x\r\n                                            x created 2017-12-26 (main key ID 38277E44AC49C269).             x\r\n                                            x                                                                x\r\n                                            x                                                                x\r\n                                            x Passphrase: __________________________________________________ x\r\n                                            x                                                                x\r\n                                            x         &lt;OK&gt;                        &lt;Cancel&gt;       x\r\n                                            mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj\r\n\r\n\/\/ eingabe des gpg Key und Enter, das Passwort wird dann im Klartext ausgegeben\r\n\r\n<\/pre>\n<p>Mit pass kann der ganze Store gelistet werden:<\/p>\n<pre class=\"lang:default decode:true \" >pass\r\nPassword Store\r\n\u251c\u2500\u2500 Generierte\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 Passw\u00f6rter\r\n\u251c\u2500\u2500 Kleinhirn.eu\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 Internet\r\n\u251c\u2500\u2500 NeuerEintrag\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 f\u00fcrBlog\r\n\u251c\u2500\u2500 Raspberry\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Root\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 user.pi\r\n\u2514\u2500\u2500 Wenzlaff.de\r\n    \u2514\u2500\u2500 Internet\r\n<\/pre>\n<p>Nun l\u00f6schen wir einen Eintrag (Verzeichnis) mit rm :<\/p>\n<pre class=\"lang:default decode:true \" >\r\npass rm -r NeuerEintrag\/\r\nAre you sure you would like to delete NeuerEintrag\/? [y\/N] y\r\n'\/home\/pi\/.password-store\/NeuerEintrag\/f\u00fcrBlog.gpg' wurde entfernt\r\nVerzeichnis '\/home\/pi\/.password-store\/NeuerEintrag' wurde entfernt\r\n<\/pre>\n<p>Es k\u00f6nnen auch Passw\u00f6rter generiert werden z.B. ein 30 Zeichen langes unter Kleinhirn.eu:<\/p>\n<pre class=\"lang:default decode:true \" >\r\npass generate Kleinhirn.eu\/Zufallspasswort 30\r\nThe generated password for Kleinhirn.eu\/Zufallspasswort is:\r\nkkhlyJl|yUq&amp;7^Zg8mtP{mw'CjG&lt;:O\r\n<\/pre>\n<p>Weitere Infos auf der <strong>man pass<\/strong> Page oder <a href=\"https:\/\/git.zx2c4.com\/password-store\/about\/\" rel=\"noopener\" target=\"_blank\">hier<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wer einen Passwort Manager braucht, kann pass verwenden. Den gibt es kostenlos f\u00fcr alle Betriebssysteme. Die Passw\u00f6rter werden alle mit gpg Verschl\u00fcsselt und liegen in ~\/.password-store so das sie leicht verwaltet werden k\u00f6nnen. Die Passw\u00f6rter k\u00f6nnen mit unix shell Kommandos so leicht verwaltet werden. Auch eine bash Auto-Vervollst\u00e4ndigung gibt es. Auch eine Git Integration ist &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=9233\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eSicherheit: gpg (GnuPG) Key Verwaltung mit pass auf dem Raspberry Pi oder sonst wo oder cooler kostenloser Passwort Manager f\u00fcr Raspberry Pi\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[220,1023,2752,1319],"tags":[3079,1228,3078,434,1226,176,449],"class_list":["post-9233","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-raspberry-pi","category-raspberry-pi-zero-w","category-sicherheit-2","tag-generiern-von-passwoertern","tag-gnupgp","tag-pass","tag-passwoerter","tag-pgp","tag-sicherheit","tag-verschluesseln"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/9233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9233"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/9233\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9233"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}