Zufallspasswort in bash generieren

Bash, Shell, PHP, Python, Perl, CGI
andreask2
RSAC
Posts: 701
Joined: 2004-01-27 14:16
Location: Aachen

Zufallspasswort in bash generieren

Post by andreask2 » 2005-04-01 12:34

Hallo!

Weiß jemand wie ich möglichst simple und möglichst ohne ein zusätzliches Programm per bash eine zufällige Zeichenfolge generieren lassen kann, sagen wir mal 8 Zeichen oder 10 Zeichen?

Grüße
Andreas

captaincrunch
Userprojekt
Userprojekt
Posts: 7225
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Zufallspasswort in bash generieren

Post by captaincrunch » 2005-04-01 12:48

Nach kurzer Suche in Google: ;)

http://www.osix.net/modules/article/?id=570

Ansonsten kannst du mal ein wenig mit der (in der Bash vorhandenen) Variable RANDOM rumspielen.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc

andreask2
RSAC
Posts: 701
Joined: 2004-01-27 14:16
Location: Aachen

Re: Zufallspasswort in bash generieren

Post by andreask2 » 2005-04-01 12:50

Also als Idee hatte ich das:

Code: Select all

date | md5sum | awk '{print substr($1, 0, 10)}'
Aber sich alleine auf das Datum zu verlassen macht das ganze natürlich nicht so besonders sicher.

Was könnte man denn mal schönes einlesen, das deutlich zufälliger ist und vor allem schwerer zu erraten/rekonstruieren als das Datum?

andreask2
RSAC
Posts: 701
Joined: 2004-01-27 14:16
Location: Aachen

Re: Zufallspasswort in bash generieren

Post by andreask2 » 2005-04-01 12:52

Ah, das sieht doch mal gut aus ;-)

Danke Dir! Hab zwar auch bei google gesucht, aber anscheinend mit anderen Suchbegriffen ;-)

tcs
RSAC
Posts: 134
Joined: 2003-11-16 12:05
Location: Woodcastle

Re: Zufallspasswort in bash generieren

Post by tcs » 2005-04-01 13:58

pwgen

ist ein kleines Programm das zufällige Passwörter ausspuckt.

Cheers

tcs

thorsten
RSAC
Posts: 732
Joined: 2003-02-01 13:14
Location: Fuldatal

Re: Zufallspasswort in bash generieren

Post by thorsten » 2005-04-01 15:31

Ich habe das so ähnlich wie andreas2k laufen.

Der Output von ps ist mir allerdings lieber als der von date und 12 Stellen müssen es für root Passwörter schon sein, wobei hier die Schwäche in der reinen Kleinschreibung liegt.
Normale User bekommen von mir initial 8 stellige PWs vorgesetzt.

Willst du die PWs allerdings Usern ausdrucken und in die Hand drücken, würde ich dir empfehlen zumindest folgende Zeichen zu meiden: 1I0O
Ansonsten hast du x-Anfrufe ;)

Code: Select all

ps aux | md5sum | tr -d '1' | tr -d '0' | awk '{print substr($1, 0, 8)}'

suntzu
RSAC
Posts: 698
Joined: 2002-12-20 19:47
Location: Mönchengladbach

Re: Zufallspasswort in bash generieren

Post by suntzu » 2005-04-01 16:23

Code: Select all

[root@hsw][16:20][0.04]
(~)# apt-get install pwgen && pwgen -cns 12 1
s#[<cH^.,yr!
[root@hsw][16:20][0.04]
(~)# pwgen -cn 12 1
jaefechie6Bo
[root@hsw][16:21][0.03]
(~)# pwgen --help
Usage: pwgen [ OPTIONS ] [ pw_length ] [ num_pw ]

Options supported by pwgen:
  -c or -capitalize
        Include at least one capital letter in the password
  -n or --numerals
        Include at least one number in the password
  -s or --secure
        Generate completely random passwords
  -h or --help
        Print a help message
  --no-numerals, --no-capitalize
        Don't include a number or capital letter in the password
  -C
        Print the generated passwords in columns
  -1
        Don't print the generated passwords in columns

Also sicherer als mit pwgen kriegst du es nicht ;-)

andreask2
RSAC
Posts: 701
Joined: 2004-01-27 14:16
Location: Aachen

Re: Zufallspasswort in bash generieren

Post by andreask2 » 2005-04-01 16:27

sicherer nicht, aber eine neue Abhängigkeit von einem zu installierenden Programm!

tcs
RSAC
Posts: 134
Joined: 2003-11-16 12:05
Location: Woodcastle

Re: Zufallspasswort in bash generieren

Post by tcs » 2005-04-01 16:58

andreask2 wrote:sicherer nicht, aber eine neue Abhängigkeit von einem zu installierenden Programm!
Wieso... es reicht doch wenn pwgen auf dem Rechner des Administrators installiert ist, auf Produktiv- und Testsystem braucht man das Zeug nun wirklich nicht.

Cheers

tcs

captaincrunch
Userprojekt
Userprojekt
Posts: 7225
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Zufallspasswort in bash generieren

Post by captaincrunch » 2005-04-01 17:04

es reicht doch wenn pwgen auf dem Rechner des Administrators installiert ist
Auch der Rechner des Admins sollte einen nicht unerheblichen teil des Sicherheitskonzepts ausmachen. ;) Je weniger Software auch dort, desto geringer die Gefahr möglicher Fehlerquellen.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc

tcs
RSAC
Posts: 134
Joined: 2003-11-16 12:05
Location: Woodcastle

Re: Zufallspasswort in bash generieren

Post by tcs » 2005-04-01 17:38

Dann sollte man aber auch woody am Desktop verwenden :wink:

Cheers

tcs

mr_neutron
Posts: 14
Joined: 2004-09-06 18:57

Re: Zufallspasswort in bash generieren

Post by mr_neutron » 2005-04-05 01:43

Wie wärs damit, wenn das Datum nicht "zufällig genug" ist:

Code: Select all

#!/bin/bash

for i in 1 2 3
do
        cat /dev/urandom | tr -d -c a-z0-9- | dd bs=1 count=8 2> /dev/null
        echo
done

andreask2
RSAC
Posts: 701
Joined: 2004-01-27 14:16
Location: Aachen

Re: Zufallspasswort in bash generieren

Post by andreask2 » 2005-04-05 10:33

Interessant! "tr" löscht alle Zeichen außer [a-z0-9-] ?

Ich muss gestehen dass ich das was in der man-page steht nicht so 100%ig verstehe ;-)

Sorgt -c einfach nur dafür dass die Löschung umgedreht wird, also nicht einfach wie bei -d alleine alle diese Zeichen löschen, sondern alle anderen _außer_ diesen Zeichen löschen?

Von wegen Datum, da habe ich

Code: Select all

date +%N%s
verwendet. Aber /dev/urandom ist da natürlich erheblich besser, auch als $RANDOM, weil das ja nur recht kurze Zahlen generiert.

Danke jedenfalls für den Tipp!

mr_neutron
Posts: 14
Joined: 2004-09-06 18:57

Re: Zufallspasswort in bash generieren

Post by mr_neutron » 2005-04-05 13:12

andreask2 wrote:Sorgt -c einfach nur dafür dass die Löschung umgedreht wird, also nicht einfach wie bei -d alleine alle diese Zeichen löschen, sondern alle anderen _außer_ diesen Zeichen löschen?
So ist es.

andreask2
RSAC
Posts: 701
Joined: 2004-01-27 14:16
Location: Aachen

Re: Zufallspasswort in bash generieren

Post by andreask2 » 2005-04-05 13:21

Danke Dir!

thorsten
RSAC
Posts: 732
Joined: 2003-02-01 13:14
Location: Fuldatal

Re: Zufallspasswort in bash generieren

Post by thorsten » 2005-04-05 14:06

mr_neutron wrote:Wie wärs damit, wenn das Datum nicht "zufällig genug" ist:

Code: Select all

#!/bin/bash

for i in 1 2 3
do
        cat /dev/urandom | tr -d -c a-z0-9- | dd bs=1 count=8 2> /dev/null
        echo
done
Ist das gewünscht, dass du auch ein oder mehrere Minuszeichen im PW hast? Wenn nein, muß das letzte '-' gelöscht werden.

andreask2
RSAC
Posts: 701
Joined: 2004-01-27 14:16
Location: Aachen

Re: Zufallspasswort in bash generieren

Post by andreask2 » 2005-04-05 14:16

was haltet Ihr von

Code: Select all

| head -c 10
an Stelle von

Code: Select all

| dd bs=1 count=10 2> /dev/null
?
Da muss man wenigstens keine Fehler-Ausgabe unterdrücken ;-)