{"id":16,"date":"2008-10-17T19:11:01","date_gmt":"2008-10-17T17:11:01","guid":{"rendered":"http:\/\/www.butschek.de\/?p=12"},"modified":"2012-03-11T12:14:12","modified_gmt":"2012-03-11T11:14:12","slug":"passwort-erzeugen","status":"publish","type":"post","link":"https:\/\/www.butschek.de\/2008\/10\/17\/passwort-erzeugen\/","title":{"rendered":"Passwort erzeugen"},"content":{"rendered":"

\"\"<\/a>Oft braucht man eine Idee f\u00fcr ein neues Passwort, doch die Idee fehlt. Wie man solche einfach erfindet, habe ich im Artikel Sichere Passw\u00f6rter<\/a> schon erkl\u00e4rt. Doch kommt es manchmal auch vor, dass man viele Passw\u00f6rter automatisch erzeugen muss. Hier helfen entweder viele kleine Tools oder eben die Shell.<\/p>\n

Zuerst hole ich mir mit dd<\/a> zuf\u00e4llige Daten, sagen wir mal 10 kByte. Diese schicke ich durch eine RegEx<\/a> und entferne alle Zeichen, die nicht den gew\u00fcnschten Zeichen entsprechen. Ich nehme hier im Beispiel nur Buchstaben und Zahlen. Nun muss ich nur noch daf\u00fcr sorgen, dass nur so viele Zeichen wie ben\u00f6tigt ankommen, was ebenfalls wieder durch eine RegEx passiert.<\/p>\n

Das Ergebnis sieht dann so aus:<\/p>\n

 <\/p>\n

dd if=\/dev\/urandom bs=1024 count=10 2>\/dev\/null\r\n  | perl -pe \"s\/[^a-zA-Z0-9]\/\/g\"\r\n  | perl -pe \"s\/^(.{12}).*$\/1\/g\"<\/pre>\n

Nun gibt es aber einen Sonderfall, bei dem ich weitere Ausnahmen mache: Das Root-Kennwort.<\/p>\n

Ein externer Login (via SSH) mit Passwort ist bei meinen Systemen nicht m\u00f6glich (nur via Public Key<\/a>). Das Passwort wird bei mir also nur ben\u00f6tigt, wenn ein Techniker es im Rechenzentrum lokal eingeben muss. Daher sollten alle Zeichen einfach tippbar sein, \u00e2\u00e1\u00e0 sind das bei nodeadkeys<\/a> meist nicht. Au\u00dferdem sollte man an die Verwechslungsgefahr denken: Der Techie mit dem Ausdruck des Passwortes in seiner Hand kann bei typischer RZ-Beleuchtung sicher keinen Unterschied zwischen | und l erkennen.<\/p>\n

Folgende Zeichen der oben generierten Passworter erachte ich als St\u00f6rend:<\/p>\n