🔐 Jak wygenerować bezpieczne klucze i hasła w Ubuntu za pomocą openssl
Bezpieczne przechowywanie i generowanie haseł oraz kluczy to podstawa każdego nowoczesnego projektu. Niezależnie od tego, czy konfigurujesz środowisko dla aplikacji typu Supabase, Neo4j, n8n czy Langfuse, potrzebujesz solidnych, losowych wartości, które nie dadzą się łatwo złamać. W tym poradniku pokażę Ci, jak krok po kroku wygenerować takie klucze i hasła w systemie Ubuntu, wykorzystując do tego narzędzie openssl.
🔧 Krok 1: Zainstaluj openssl
Większość dystrybucji Ubuntu ma już openssl zainstalowane domyślnie, ale na wszelki wypadek upewnij się, że masz je na swoim systemie. W terminalu wpisz:
sudo apt update
sudo apt install -y openssl
Po instalacji sprawdź, czy openssl działa poprawnie:
openssl version
🔑 Krok 2: Generowanie bezpiecznych kluczy i haseł
Poniżej znajdziesz zestaw poleceń, które wygenerują losowe i trudne do przewidzenia ciągi znaków — idealne do wykorzystania jako hasła, klucze JWT czy tokeny API.
📁 Konfiguracja n8n
export N8N_ENCRYPTION_KEY=$(openssl rand -hex 32)
export N8N_USER_MANAGEMENT_JWT_SECRET=$(openssl rand -hex 32)
🧪 Sekrety Supabase
export POSTGRES_PASSWORD=$(openssl rand -hex 32)
export JWT_SECRET=$(openssl rand -hex 32)
export ANON_KEY=$(openssl rand -hex 32)
export SERVICE_ROLE_KEY=$(openssl rand -hex 32)
export DASHBOARD_USERNAME=admin
export DASHBOARD_PASSWORD=$(openssl rand -hex 16)
export POOLER_TENANT_ID=your-tenant-id-$(openssl rand -hex 8)
🕸️ Dane uwierzytelniające Neo4j
export NEO4J_AUTH=neo4j/$(openssl rand -hex 16)
📊 Dane dla Langfuse
export CLICKHOUSE_PASSWORD=$(openssl rand -hex 32)
export MINIO_ROOT_PASSWORD=$(openssl rand -hex 32)
export LANGFUSE_SALT=$(openssl rand -hex 32)
export NEXTAUTH_SECRET=$(openssl rand -hex 32)
export ENCRYPTION_KEY=$(openssl rand -hex 32)
📄 Krok 3: Zapisz klucze do pliku .env
Po wygenerowaniu wartości, warto zapisać je do pliku .env, który będzie używany przez Twoje aplikacje:
echo "N8N_ENCRYPTION_KEY=$N8N_ENCRYPTION_KEY" >> .env
echo "N8N_USER_MANAGEMENT_JWT_SECRET=$N8N_USER_MANAGEMENT_JWT_SECRET" >> .env
# I tak dalej dla wszystkich wygenerowanych zmiennych...
Możesz też od razu przekierować wszystko do .env, używając jednego polecenia:
cat <<EOF > .env
N8N_ENCRYPTION_KEY=$N8N_ENCRYPTION_KEY
N8N_USER_MANAGEMENT_JWT_SECRET=$N8N_USER_MANAGEMENT_JWT_SECRET
POSTGRES_PASSWORD=$POSTGRES_PASSWORD
JWT_SECRET=$JWT_SECRET
ANON_KEY=$ANON_KEY
SERVICE_ROLE_KEY=$SERVICE_ROLE_KEY
DASHBOARD_USERNAME=$DASHBOARD_USERNAME
DASHBOARD_PASSWORD=$DASHBOARD_PASSWORD
POOLER_TENANT_ID=$POOLER_TENANT_ID
NEO4J_AUTH=$NEO4J_AUTH
CLICKHOUSE_PASSWORD=$CLICKHOUSE_PASSWORD
MINIO_ROOT_PASSWORD=$MINIO_ROOT_PASSWORD
LANGFUSE_SALT=$LANGFUSE_SALT
NEXTAUTH_SECRET=$NEXTAUTH_SECRET
ENCRYPTION_KEY=$ENCRYPTION_KEY
EOF
🛡️ Krok 4: Zadbaj o bezpieczeństwo
Plik .env nie powinien być udostępniany publicznie, ani wrzucany do repozytorium. Dodaj go do .gitignore, jeśli korzystasz z Git:
echo ".env" >> .gitignore
Dobrą praktyką jest również przechowywanie haseł i kluczy w menedżerze haseł (np. Bitwarden, 1Password, KeePassXC).
✅ Podsumowanie
Używając prostych poleceń openssl, możesz szybko wygenerować bezpieczne i silne klucze dla swojego projektu. W połączeniu z dobrymi praktykami przechowywania danych, daje to solidną podstawę dla budowania bezpiecznych aplikacji.
Masz pytania lub chcesz rozszerzyć konfigurację o dodatkowe usługi? Zostaw komentarz poniżej!