GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ein Liner zum Erstellen von Passwörtern unter Linux?

Kommt darauf an, was man unter "lesbar" versteht. Wenn Sie nur hexadezimale Zeichen verwenden möchten, benötigen Sie 32 davon, um 128 Bit Entropie zu erreichen; diese Zeile funktioniert (nur mit Befehlen aus dem coreutils Paket):

head -c16 /dev/urandom | md5sum

Diese Variante erzeugt Passwörter nur mit Kleinbuchstaben, von 'a' bis 'p' (dies ist, was Sie wollen, wenn Sie das Passwort auf einem Smartphone "eintippen" müssen):

head -c16 /dev/urandom | md5sum | tr 0-9 g-p

Wenn Sie ein Zeichen weniger eingeben möchten, versuchen Sie Folgendes:

head -16 /dev/urandom | md5sum

(Die Wahrscheinlichkeit, alle ersten 16 zufälligen Bytes als 0x0A zu erhalten, d. h. das "newline"-Zeichen, ist 2, daher erhält diese Zeile immer noch 128 Bit Entropie.)

Beschränken Sie sich immer noch auf Befehle von coreutils , können Sie Folgendes tun:

mktemp -u XXXXXXXXXXXXXXXXXXXXXX

Dieser generiert ein 22-stelliges Passwort mit /dev/urandom als interne Zufallsquelle (ich habe den Quellcode eingecheckt, und ein strace Anruf bestätigt). Die Zeichen sind Buchstaben (Groß- und Kleinbuchstaben) und Ziffern; da 62 größer als 2 ist, reichen die 22 Zeichen aus.

Noch einer:

od -An -x /dev/urandom | head -1

dies zeigt acht Sequenzen von vier Hexadezimalziffern an. Diese Aufteilung in kleine Sequenzen kann wohl beim Lesen helfen.

Versuchen Sie Folgendes für eine viel längere Zeile und eine ganz andere Art von Passwort:

for i in {1..8} ; do head -$(expr $(head -c7 /dev/urandom | od -An -t dL) % $(wc -l < /usr/share/dict/british-english)) /usr/share/dict/british-english | tail -1 ; done

(Dieser funktioniert nur auf einem 64-Bit-Host; werden Sie bemerken, warum?). Abgesehen von coreutils , benötigt diese Version auch eine Wörterbuchdatei, hier die für britisches Englisch.


Einige tolle Vorschläge in den anderen Antworten. Ich finde, dass makepasswd nicht überall verfügbar ist und die Verwendung von tr (etwas) schwierig ist, also gibt es eine andere Option mit OpenSSL:

openssl rand -base64 16

Die Zahl ist die Anzahl der Bytes der Zufälligkeit - also 16 Bytes für 128 Bit Entropie.


Mit pwgen

Einfachster Einzeiler aller Zeiten:

pwgen

Es versucht, Passwörter zu erstellen, die leicht zu merken sind. Um dies zu deaktivieren und sicherere Passwörter zu erstellen, verwenden Sie den --secure oder -s Flagge.

pwgen -s

Sind die generierten Passwörter zu lang? Zu kurz? Einfach die gewünschte Länge anhängen:

pwgen 9
# Or
pwgen -s 9
# Or
pwgen 9 -s

Ähnliche Tools

Ich kenne pwgen nur zufällig, es gibt andere Tools da draußen. Sie finden sie über die Suchfunktion Ihrer Distribution. Bei Debian ist dies:

apt-cache search password generator

Es führt eine exakte (wenn auch Groß- und Kleinschreibung) Suche durch. Mit password generat erweitert stattdessen die Suche.

Vor der Installation des Pakets kann es hilfreich sein, sich dessen Beschreibung anzusehen. Wieder in Debian:

apt-cache show $DESIRED_PACKAGE
# E.g.
apt-cache show pwgen

Tools, die ich auf diese Weise finden konnte:

  • pwgen
  • makepasswd
  • apg
  • otp (für einmalige Pads gedacht, nicht empfohlen)
  • gpw (konzentriert sich stark auf Aussprechbarkeit, nicht empfohlen)

Mit Standard-Unix-Tools

Möglicherweise ist pwgen nicht auf allen Systemen verfügbar. Wie andere geantwortet haben, können Sie md5sum verwenden oder sha256sum , aber das gibt nur 0-9 und a-f aus. Kein g-z oder Groß-/Kleinschreibung, geschweige denn Sonderzeichen. Besser ist es, nicht druckbare Zeichen einfach aus /dev/urandom herauszufiltern bis Sie ein Passwort der gewünschten Länge haben:

cat /dev/urandom | tr -cd '@-~' | head -c 8

Was so etwas wie XiVsdn[y ergibt oder [email protected]^lY . Sie können den 8 ändern am Ende für die gewünschte Passwortlänge. Sie können auch den @-~ ändern Teil, um die Zeichen zu begrenzen. Dies wird beispielsweise nur alphanumerische Zeichen drucken:

cat /dev/urandom | tr -cd 'a-zA-Z0-9' | head -c 8

Dies ist fast identisch mit pwgen -s tun würde und gibt Passwörter wie nZiUzNtE an .

Als Bonus die tr Das Tool ist in fast allen Betriebssystemen (Mac OS X, GNU/Linux, Android/Linux, Solaris, FreeBSD usw.) mit Ausnahme von Microsoft Windows enthalten.


Linux
  1. Generieren Sie Passwörter auf der Linux-Befehlszeile

  2. So erstellen Sie ein Skript eines Linux-Befehls

  3. So erstellen Sie ein Linux-RPM-Paket

  4. So erstellen Sie einen Swap unter Linux

  5. Ein Befehl zum Erstellen eines Verzeichnisses und einer Datei darin Linux-Befehl

So erstellen Sie eine Datei unter Linux

So erstellen Sie Verknüpfungen auf dem Linux-Desktop

So erstellen Sie einen SSH-Alias ​​unter Linux

So erstellen Sie einen Alias ​​unter Linux

4 Möglichkeiten zum Erstellen einer neuen Datei unter Linux

Eine Partition unter Linux erstellen – Eine Schritt-für-Schritt-Anleitung