Błędy konfiguracji serwera SSH: Problemy z logowaniem zdalnym, konfiguracją kluczy SSH, uprawnieniami i zabezpieczeniem serwera
Błędy konfiguracji serwera SSH: Problemy z logowaniem zdalnym, konfiguracją kluczy SSH, uprawnieniami i zabezpieczeniem serwera
🔐 Wprowadzenie
Protokół SSH (Secure Shell) jest jednym z podstawowych narzędzi do zdalnego zarządzania systemami Linux. Jednak błędy konfiguracji serwera SSH mogą prowadzić do problemów z logowaniem, błędów autoryzacji, a nawet poważnych luk w bezpieczeństwie. W tym artykule wyjaśniamy, jak diagnozować i rozwiązywać problemy z logowaniem SSH, kluczami publicznymi, uprawnieniami i konfiguracją bezpieczeństwa.
⚙️ Podstawowa konfiguracja SSH
Główny plik konfiguracyjny serwera SSH to:
/etc/ssh/sshd_config
Zmiany w tym pliku wymagają restartu usługi:
sudo systemctl restart sshd
❌ Najczęstsze błędy konfiguracyjne SSH

1️⃣ Złe uprawnienia na katalogach i plikach
🔎 SSH wymaga restrykcyjnych uprawnień:
~/.ssh→ 700~/.ssh/authorized_keys→ 600~/.ssh/id_rsa→ 600~/.ssh/id_rsa.pub→ 644- Plik
/etc/ssh/sshd_config→ 644 lub 600
✅ Poprawienie uprawnień:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
2️⃣ Brak lub zła konfiguracja klucza publicznego
📌 Klucz publiczny powinien być dodany do:
~/.ssh/authorized_keys
Upewnij się, że nie ma dodatkowych znaków lub błędnych spacji. Prawidłowa linia zaczyna się np. od ssh-rsa.
3️⃣ Zablokowany dostęp przez ustawienia sshd_config
🛑 Błędne wpisy w pliku sshd_config mogą zablokować dostęp, np.:
PasswordAuthentication no
PubkeyAuthentication no
PermitRootLogin no
🔧 Co sprawdzić:
- Czy
PubkeyAuthenticationjest włączone - Czy
PasswordAuthenticationjest włączone, jeśli logujesz się hasłem - Czy
PermitRootLoginnie blokuje dostępu (może być ustawione naprohibit-password)
4️⃣ Nieprawidłowy adres IP lub port
🔎 Sprawdź, czy serwer nasłuchuje na właściwym porcie:
sudo netstat -tulnp | grep ssh
Upewnij się, że port SSH (domyślnie 22) nie jest zablokowany przez firewall:
sudo ufw allow ssh
sudo ufw status
5️⃣ Błąd „Permission denied (publickey,password)”
To klasyczny błąd wynikający najczęściej z:
- Nieprawidłowych kluczy SSH
- Niepoprawnych uprawnień
- Wyłączonego logowania hasłem i nieaktywnego logowania kluczami
🔍 Sprawdź logi:
journalctl -u sshd
lub
cat /var/log/auth.log
🔐 Dobre praktyki bezpieczeństwa SSH
✅ Wyłącz logowanie rootem
PermitRootLogin no
✅ Używaj logowania kluczem publicznym
PasswordAuthentication no
PubkeyAuthentication yes
✅ Zmień domyślny port SSH
Port 2222
Pamiętaj, aby dodać wyjątek w zaporze sieciowej:
sudo ufw allow 2222/tcp
✅ Użyj narzędzi typu Fail2ban
Fail2ban blokuje adresy IP, które podejmują wielokrotne nieudane próby logowania.
sudo apt install fail2ban
✅ Ogranicz dostęp do SSH tylko dla wybranych użytkowników
AllowUsers adminuser devops
🧪 Narzędzia do testowania i diagnostyki SSH
🔧 ssh -v — tryb verbose do diagnozowania błędów:
ssh -v user@host
🔧 sshd -t — sprawdzenie poprawności konfiguracji:
sudo sshd -t
🔧 nc (netcat) — sprawdzenie, czy port SSH jest otwarty:
nc -zv host 22
🛠️ Jak przywrócić dostęp, gdy coś pójdzie nie tak?
- Zaloguj się lokalnie przez konsolę lub inne konto z sudo.
- Zmień lub usuń błędne wpisy w
/etc/ssh/sshd_config. - Sprawdź logi:
/var/log/auth.logijournalctl. - Uruchom ponownie usługę SSH:
sudo systemctl restart sshd
✅ Podsumowanie
Błędy konfiguracji SSH mogą uniemożliwić zdalne zarządzanie systemem lub otworzyć furtkę dla atakujących. Kluczem do sukcesu jest zrozumienie, jak działa uwierzytelnianie, prawidłowe ustawienie uprawnień i świadome wdrożenie polityk bezpieczeństwa. W połączeniu z odpowiednimi narzędziami diagnostycznymi, administratorzy mogą efektywnie wykrywać i rozwiązywać problemy z SSH.






