Oto rozbudowany poradnik prezentujący 8 sposobów generowania losowego hasła w terminalu Linux, z jasnymi instrukcjami krok po kroku, wyjaśnieniami działania oraz gotowymi przykładami poleceń.
1. Generator urandom + tr + head
Najprostsza metoda z użyciem narzędzi dostępnych na każdym Linuksie.
Instrukcja –
tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 16 
Wyjaśnienie –
tr -dc 'A-Za-z0-9'– filtruje strumień do znaków alfanumerycznych.< /dev/urandom– źródło losowych bajtów.head -c 16– zwraca 16 znaków, czyli mocne losowe hasło.
Możesz zmienić ilość znaków podając inną liczbę po -c.
2. Narzędzie pwgen
Instalacja (jeśli nie masz) –
sudo apt install pwgen 
Generowanie przykładowego hasła –
pwgen 16 1 
Wyjaśnienie –
16– długość hasła.1– liczba haseł do wygenerowania.
Hasła z pwgen są losowe, często wymawialne (łatwiejsze do zapamiętania), ale można użyć opcji, by były trudniejsze do odgadnięcia.
3. Automatyczny generator haseł APG
Instalacja (w niektórych dystrybucjach apg jest domyślnie) –
sudo apt install apg 
Podstawowe użycie –
apg -a 1 -m 16 -x 16 -M SNCL 
Wyjaśnienie opcji –
-a 1– tryb całkowicie losowy (nie wymawialne).-m 16 -x 16– ustaw dokładnie 16 znaków długości.-M SNCL– wymusza wykorzystanie małych (L), dużych (C) liter, cyfr (N) i znaków specjalnych (S).
4. Funkcja bash genpasswd
Możesz utworzyć własną funkcję do generowania hasła:
Dodaj do pliku ~/.bashrc –
genpasswd() { local l=$1; [ "$l" == "" ] && l=16; tr -dc A-Za-z0-9_ < /dev/urandom | head -c ${l} | xargs; } 
Użycie –
source ~/.bashrc genpasswd 18 
Wygeneruje 18-znakowe losowe hasło alfanumeryczne.
5. Funkcja bash randompass z macierzą znaków
Użycie własnej „macierzy” znaków:
Funkcja do pliku ~/.bashrc –
randompass() { MATRIX="HpZld&xsG47f0)W^9gNa!)LR(TQjh&UwnvP(tD5eAzr6k@E&y(umB3^@!K^cbOCV)" PASS="" n=1; i=1 [ -z "$1" ] && length=8 || length=$1 [ -z "$2" ] && num=1 || num=$2 while [ ${i} -le $num ]; do while [ ${n} -le $length ]; do PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}" n=$(($n + 1)) done echo $PASS n=1; PASS=""; i=$(($i + 1)) done } 
Użycie –
source ~/.bashrc randompass 20 3 
Wygeneruje 3 losowe hasła po 20 znaków.
6. openssl rand
Kryptograficznie bezpieczne hasła (hex lub base64):
Użycie –
openssl rand -base64 16 
To polecenie wygeneruje 16 bajtów zakodowanych jako base64, co daje ok. 22-24 znaki trudne do złamania.
Dla cyfr/liter –
openssl rand -hex 16 
Dostajesz 32 znaki szesnastkowe.
7. Narzędzie date + sha256sum + base64 + head
Możliwy szybki trik bez instalacji niczego:
Instrukcja –
date +%s%N | sha256sum | base64 | head -c 20 
- Bazuje na unikalnym czasie systemowym i funkcji skrótu.
 - Nadaje się do generowania przyzwoitych jednorazowych haseł.
 
8. Narzędzie gpg jako generator losowych znaków
Użycie –
gpg --gen-random --armor 1 16 
--gen-random 1 16– 16 bajtów losowych o umiarkowanej jakości,--armorzwraca je w base64.- Daje losowe, długie ciągi znaków idealne na hasła.
 
Podsumowanie – porównanie metod
| Metoda | Wymaga instalacji | Możliwości | Bezpieczeństwo | Przykład polecenia | 
|---|---|---|---|---|
| urandom + tr + head | Nie | Prosta | Wysokie | tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 16 | 
| pwgen | Tak | Wymawialne/losowe | Umiarkowane/wysokie | pwgen 16 1 | 
| apg | Tak/częściowo | Szerokie opcje | Wysokie | apg -a 1 -m 16 -x 16 -M SNCL | 
| Funkcja genpasswd | Nie | Skrypt do powłoki | Wysokie | genpasswd 18 | 
| Funkcja randompass | Nie/skrypt | Elastyczna | Wysokie | randompass 20 3 | 
| openssl rand | Nie | Bardzo silne | Bardzo wysokie | openssl rand -base64 16 | 
| date + sha256sum + base64 | Nie | Prosta | Umiarkowane | date +%s%N | sha256sum | base64 | head -c 20 | 
| gpg –gen-random | Tak | Bezpieczne | Bardzo wysokie | gpg --gen-random --armor 1 16 | 
Każdą z omówionych metod możesz dopasować do własnych potrzeb – np. wydłużając hasło, zmieniając zestaw znaków czy automatyzując polecenie w skryptach.
Szczegółowe opisy i przełączniki możesz znaleźć w dokumentacji (man apg, man pwgen, man openssl).






