Dodanie publicznego klucza SSH do serwera umożliwia logowanie bez podawania hasła SSH. Dostęp możesz skonfigurować w dPanelu, użyć polecenia ssh-copy-id albo dodać klucz ręcznie w pliku authorized_keys.
Spis treści
Przed rozpoczęciem
Do wykonania instrukcji potrzebujesz aktywnego dostępu SSH. Jeśli usługa nie jest jeszcze aktywna, aktywuj konto SSH w dPanelu.
- Zaloguj się do dPanelu.
- Przejdź do sekcji Zaawansowane i wybierz Secure Shell (SSH).
- Sprawdź nazwę użytkownika oraz adres serwera w formacie
LOGIN.ssh.dhosting.pl. WartośćLOGINoznacza nazwę użytkownika z dPanelu.
Jeśli nie masz jeszcze pary kluczy SSH, wygeneruj ją lokalnie za pomocą polecenia ssh-keygen. Na Linuxie możesz użyć poniższej komendy. Więcej informacji znajdziesz w przewodniku jak wygenerować klucze SSH. Dostępny jest także przewodnik dotyczący generowania kluczy SSH.
ssh-keygen -t ed25519 -C "moj-komputer" Sposób 1: dodanie klucza za pomocą ssh-copy-id
Tej metody możesz użyć na macOS, Linuxie oraz Windowsie z OpenSSH. OpenSSH jest domyślnie dostępny w systemach Windows 10 i Windows 11.
- Uruchom terminal.
- Wykonaj polecenie:
ssh-copy-id -i ~/.ssh/id_ed25519.pub LOGIN@LOGIN.ssh.dhosting.pl Przy pierwszym użyciu polecenie poprosi o hasło SSH. Jest to jednorazowa autoryzacja. Po poprawnym dodaniu klucza kolejne logowania będą odbywać się bez podawania hasła SSH.
Jeśli korzystasz ze starszego systemu Windows albo OpenSSH nie jest dostępny, użyj ręcznego dodania klucza przez SSH.
Sposób 2: ręczne dodanie klucza przez SSH
Krok 1: zaloguj się na serwer
Uruchom terminal i połącz się z serwerem:
ssh LOGIN@LOGIN.ssh.dhosting.pl Krok 2: utwórz katalog .ssh
Na nowym koncie katalog .ssh może jeszcze nie istnieć. Utwórz go i od razu ustaw wymagane uprawnienia:
mkdir -p ~/.ssh
chmod 700 ~/.ssh Nie pomijaj polecenia chmod 700. Nieprawidłowe uprawnienia mogą uniemożliwić logowanie za pomocą klucza SSH. Więcej informacji znajdziesz w sekcji Wymagane uprawnienia SSH.
Krok 3: dodaj klucz publiczny
Otwórz plik authorized_keys w edytorze nano:
nano ~/.ssh/authorized_keys W otwartym pliku, w nowej linii, wklej zawartość publicznego klucza SSH z pliku z rozszerzeniem .pub. Cały klucz musi znajdować się w jednej linii.
Zapisz zmiany w pliku za pomocą następujących skrótów:
Ctrl+XYEnter
Plik authorized_keys zostanie zapisany.
Krok 4: ustaw uprawnienia pliku
Ustaw uprawnienia pliku authorized_keys:
chmod 600 ~/.ssh/authorized_keys Wymagane uprawnienia SSH
Serwer SSH działa z włączonym trybem StrictModes. Przy nieprawidłowych uprawnieniach może odrzucić klucz bez podania bezpośredniej przyczyny. W takiej sytuacji pojawia się komunikat Permission denied (publickey), nawet jeśli klucz jest poprawny.
| Zasób | Wymagane uprawnienia | Polecenie |
|---|---|---|
Katalog domowy ~/ | Maksymalnie 755, bez uprawnień do zapisu dla grupy | chmod 755 ~ |
Katalog ~/.ssh | 700 | chmod 700 ~/.ssh |
Plik ~/.ssh/authorized_keys | 600 | chmod 600 ~/.ssh/authorized_keys |
Aby sprawdzić zawartość katalogu .ssh i jego uprawnienia, wykonaj:
ls -la ~/.ssh/ Sprawdzenie logowania kluczem SSH
Po dodaniu klucza wyloguj się z serwera i połącz ponownie:
ssh LOGIN@LOGIN.ssh.dhosting.pl Jeśli klucz został dodany poprawnie, logowanie powinno odbyć się bez podawania hasła SSH. Ponowne uruchamianie serwera SSH nie jest wymagane.
Co zrobić, jeśli logowanie nie działa?
Najpierw sprawdź:
- czy używasz właściwego użytkownika
LOGIN; - czy łączysz się z adresem
LOGIN.ssh.dhosting.pl; - czy cały klucz publiczny znajduje się w jednej linii w pliku
authorized_keys; - czy katalog domowy, katalog
.sshi plikauthorized_keysmają wymagane uprawnienia; - czy klucz publiczny odpowiada kluczowi prywatnemu używanemu przez klienta SSH.
Aby uruchomić logowanie w trybie szczegółowym, wykonaj:
ssh -v LOGIN@LOGIN.ssh.dhosting.pl W logu zwróć uwagę na linie Offering public key oraz Authentications that can continue. Mogą wskazać, czy klient oferuje właściwy klucz i jakie metody uwierzytelniania są dostępne.
Jeśli problem nadal występuje, ponownie sprawdź uprawnienia SSH oraz zawartość pliku authorized_keys.
Po poprawnym dodaniu klucza logowanie przez SSH powinno odbywać się bez podawania hasła SSH.
