Jak skonfigurować dostęp SSH za pomocą kluczy?

Cel artykułu: Przeprowadzenie użytkownika przez proces generowania kluczy SSH i konfiguracji dostępu SSH w DirectAdmin, co znacząco zwiększy bezpieczeństwo połączeń z serwerem.

Czym są klucze SSH i dlaczego warto je stosować?

SSH (Secure Shell) to protokół sieciowy umożliwiający bezpieczne zdalne logowanie do serwera oraz wykonywanie na nim poleceń. W IQhost domyślnie nie można logować się do SSH przy użyciu hasła - wymagane jest uwierzytelnianie za pomocą kluczy SSH.

Klucze SSH stanowią parę powiązanych ze sobą kluczy:

  • Klucz prywatny - przechowywany jest lokalnie na Twoim komputerze i musi być chroniony
  • Klucz publiczny - umieszczany jest na serwerze, do którego chcesz uzyskać dostęp

Zalety stosowania kluczy SSH zamiast haseł:

  • Znacznie większe bezpieczeństwo - klucze SSH są praktycznie niemożliwe do złamania
  • Wygoda użytkowania - po skonfigurowaniu nie trzeba wpisywać hasła przy każdym logowaniu
  • Ochrona przed atakami brute-force - eliminują możliwość przełamania hasła metodą siłową
  • Możliwość bezpiecznej automatyzacji - zadania wymagające dostępu SSH mogą być automatyzowane

Wymagania wstępne

Przed rozpoczęciem konfiguracji upewnij się, że:

  1. Posiadasz pakiet hostingowy w IQhost, który oferuje dostęp SSH (pakiety HS25 i wyższe)
  2. Jesteś zalogowany do Panelu Klienta IQhost
  3. Masz zainstalowany terminal (wbudowany w systemy Linux/macOS lub np. Windows Terminal/PowerShell w Windows)
  4. (Opcjonalnie) Masz zainstalowany klient SSH (wbudowany w większość systemów operacyjnych)

Uwaga: Procedura generowania kluczy SSH różni się nieznacznie w zależności od systemu operacyjnego. Poniżej przedstawimy instrukcje dla najpopularniejszych platform: Windows, macOS i Linux.


Generowanie kluczy SSH

Windows (za pomocą PowerShell)

  1. Otwórz PowerShell jako standardowy użytkownik
  2. Wprowadź następujące polecenie, aby wygenerować parę kluczy SSH:
ssh-keygen -t ed25519 -C "Twój_komentarz_np_email@example.com"
  1. Zostaniesz poproszony o wskazanie lokalizacji zapisu klucza. Możesz nacisnąć Enter, aby zaakceptować domyślną lokalizację (C:\Users\Twoja_nazwa_użytkownika\.ssh\id_ed25519)

  2. Następnie zostaniesz poproszony o wprowadzenie hasła zabezpieczającego klucz. Jest to dodatkowa warstwa ochrony - hasło będzie wymagane przy każdym użyciu klucza.

    • Dla maksymalnego bezpieczeństwa: wprowadź silne hasło
    • Dla wygody: możesz pozostawić pole puste (mniej bezpieczne)
  3. Po zakończeniu procesu zobaczysz komunikat potwierdzający utworzenie kluczy oraz informację o ich lokalizacji.

  4. Twoje klucze zostały utworzone:

    • Klucz prywatny: C:\Users\Twoja_nazwa_użytkownika\.ssh\id_ed25519
    • Klucz publiczny: C:\Users\Twoja_nazwa_użytkownika\.ssh\id_ed25519.pub

macOS i Linux

  1. Otwórz Terminal
  2. Wprowadź następujące polecenie:
ssh-keygen -t ed25519 -C "Twój_komentarz_np_email@example.com"
  1. Zostaniesz poproszony o wskazanie lokalizacji zapisu klucza. Możesz nacisnąć Enter, aby zaakceptować domyślną lokalizację (~/.ssh/id_ed25519)

  2. Następnie zostaniesz poproszony o wprowadzenie hasła zabezpieczającego klucz.

    • Dla maksymalnego bezpieczeństwa: wprowadź silne hasło
    • Dla wygody: możesz pozostawić pole puste (mniej bezpieczne)
  3. Po zakończeniu procesu zobaczysz komunikat potwierdzający utworzenie kluczy oraz informację o ich lokalizacji.

  4. Twoje klucze zostały utworzone:

    • Klucz prywatny: ~/.ssh/id_ed25519
    • Klucz publiczny: ~/.ssh/id_ed25519.pub

Ważne: Nigdy nie udostępniaj swojego klucza prywatnego nikomu! Klucz prywatny powinien pozostać tylko na Twoim komputerze.


Kopiowanie klucza publicznego

Teraz musisz skopiować zawartość klucza publicznego, aby później dodać go do DirectAdmin.

Windows

  1. Otwórz PowerShell i wprowadź polecenie:
Get-Content "$env:USERPROFILE\.ssh\id_ed25519.pub" | clip

To polecenie kopiuje zawartość klucza publicznego do schowka.

macOS

  1. Otwórz Terminal i wprowadź polecenie:
pbcopy < ~/.ssh/id_ed25519.pub

To polecenie kopiuje zawartość klucza publicznego do schowka.

Linux

W zależności od dystrybucji, możesz użyć jednego z poniższych poleceń:

# Systemy oparte na GNOME (Ubuntu, Fedora)
cat ~/.ssh/id_ed25519.pub | xclip -selection clipboard

# Systemy oparte na KDE
cat ~/.ssh/id_ed25519.pub | xsel -ib

Jeśli żadne z powyższych nie działa, możesz zawsze otworzyć plik tekstowo i ręcznie skopiować jego zawartość:

cat ~/.ssh/id_ed25519.pub

Następnie zaznacz i skopiuj wyświetloną zawartość klucza publicznego.


Dodawanie klucza publicznego do DirectAdmin

Teraz dodamy skopiowany klucz publiczny do serwera poprzez panel DirectAdmin:

  1. Zaloguj się do Panelu Klienta IQhost (panel.iqgroup.pl)
  2. Przejdź do usługi hostingowej, do której chcesz skonfigurować dostęp SSH
  3. Kliknij przycisk "Przejdź do DirectAdmin" lub podobny, aby zalogować się do panelu zarządzania hostingiem
  4. W panelu DirectAdmin przejdź do sekcji "SSH Management" lub "Zarządzanie SSH"
  5. Znajdź opcję "SSH Keys" lub "Klucze SSH"
  6. Kliknij na "Import Key" lub "Importuj klucz"
  7. W polu tekstowym wklej skopiowany wcześniej klucz publiczny
  8. Nadaj nazwę dla tego klucza (np. "Mój komputer osobisty" lub "Komputer służbowy")
  9. Kliknij przycisk "Import" lub "Importuj", aby dodać klucz

Panel DirectAdmin - dodawanie klucza SSH

Po poprawnym zaimportowaniu klucza, zobaczysz go na liście autoryzowanych kluczy. Od teraz możesz używać tego klucza do logowania się przez SSH do Twojego konta hostingowego.


Logowanie za pomocą kluczy SSH

Teraz, gdy klucz jest już skonfigurowany, możesz zalogować się do serwera za pomocą SSH. Oto jak to zrobić:

Windows

  1. Otwórz PowerShell lub Windows Terminal
  2. Użyj następującego polecenia, aby połączyć się z serwerem:
ssh hostXXXX@nazwa_serwera.iqhs.pl

gdzie:

  • hostXXXX to nazwa Twojego konta hostingowego (np. host1234)
  • nazwa_serwera.iqhs.pl to nazwa serwera, na którym znajduje się Twoje konto (zazwyczaj jest to Twoja subdomena funkcyjna hostXXXX.iqhs.eu)
  1. Jeśli łączysz się po raz pierwszy, zostaniesz poproszony o potwierdzenie autentyczności serwera (wpisz "yes")
  2. Jeśli ustawiłeś hasło dla klucza SSH, zostaniesz poproszony o jego podanie

macOS i Linux

  1. Otwórz Terminal
  2. Użyj następującego polecenia:
ssh hostXXXX@nazwa_serwera.iqhs.pl
  1. Jeśli łączysz się po raz pierwszy, zostaniesz poproszony o potwierdzenie autentyczności serwera (wpisz "yes")
  2. Jeśli ustawiłeś hasło dla klucza SSH, zostaniesz poproszony o jego podanie

Po poprawnym wprowadzeniu tych danych, powinieneś mieć dostęp do powłoki na serwerze przez SSH.

Uwaga: W IQhost dostęp SSH jest domyślnie wyłączony dla większości użytkowników. Jeśli masz trudności z logowaniem, sprawdź czy:

  • Twój pakiet hostingowy obsługuje SSH (HS25 i wyższe)
  • Poprawnie dodałeś klucz publiczny do DirectAdmin
  • Używasz właściwej nazwy użytkownika (hostXXXX) i adresu serwera

Rozwiązywanie problemów z dostępem SSH

Jeśli masz problemy z konfiguracją lub używaniem kluczy SSH, poniżej znajdziesz najczęstsze problemy i ich rozwiązania:

Problem: Odmowa dostępu (Permission denied)

Najczęstsze przyczyny:

  • Klucz publiczny nie został poprawnie zaimportowany do DirectAdmin
  • Używasz nieprawidłowej nazwy użytkownika lub adresu serwera
  • Klucz prywatny nie jest dostępny w standardowej lokalizacji na Twoim komputerze

Rozwiązanie:

  1. Sprawdź czy klucz publiczny jest widoczny w DirectAdmin w sekcji "SSH Keys"
  2. Upewnij się, że używasz prawidłowej nazwy użytkownika (hostXXXX)
  3. Spróbuj jawnie wskazać ścieżkę do klucza prywatnego:
ssh -i ścieżka/do/klucza_prywatnego hostXXXX@nazwa_serwera.iqhs.pl

Problem: Klucz jest odrzucany

Przyczyny:

  • Format klucza może być niekompatybilny
  • Prawa dostępu do plików kluczy mogą być nieprawidłowe (szczególnie w systemach Unix/Linux)

Rozwiązanie:

  1. Sprawdź prawa dostępu do plików kluczy (tylko użytkownik powinien mieć prawo do odczytu/zapisu):
chmod 600 ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519.pub
  1. Jeśli problem nadal występuje, spróbuj utworzyć klucz RSA zamiast ED25519:
ssh-keygen -t rsa -b 4096 -C "twój_komentarz"

Problem: Monit o hasło mimo skonfigurowanych kluczy

Przyczyny:

  • System próbuje używać uwierzytelniania hasłem zamiast kluczy
  • Agent SSH nie jest uruchomiony lub nie ma dostępu do klucza

Rozwiązanie:

  1. Wymuś używanie uwierzytelniania kluczem:
ssh -o PreferredAuthentications=publickey hostXXXX@nazwa_serwera.iqhs.pl
  1. Upewnij się, że agent SSH jest uruchomiony i klucz jest do niego dodany:
# W systemach Linux/macOS
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_ed25519

# W systemie Windows (PowerShell)
# Najpierw uruchom usługę OpenSSH Authentication Agent
Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ed25519

Najlepsze praktyki bezpieczeństwa dla kluczy SSH

Aby zapewnić maksymalne bezpieczeństwo podczas korzystania z kluczy SSH:

  1. Używaj silnych algorytmów i długich kluczy

    • Preferuj ED25519 lub RSA o długości co najmniej 4096 bitów
  2. Chroń swoje klucze prywatne

    • Nigdy nie udostępniaj klucza prywatnego
    • Zabezpiecz klucz silnym hasłem
    • Ustaw odpowiednie uprawnienia do plików kluczy (chmod 600)
  3. Używaj różnych kluczy do różnych serwerów

    • Dla środowisk produkcyjnych
    • Dla środowisk testowych
    • Dla usług osobistych i służbowych
  4. Regularnie odnawiaj klucze

    • Generuj nowe klucze co najmniej raz w roku
    • Usuwaj stare, nieużywane klucze
  5. Używaj agenta SSH

    • Pozwala na jednorazowe wprowadzenie hasła
    • Ułatwia zarządzanie wieloma kluczami
  6. Regularnie sprawdzaj autoryzowane klucze

    • Przeglądaj listę kluczy w DirectAdmin
    • Usuwaj nieużywane lub nierozpoznane klucze

Zaawansowane opcje konfiguracji SSH

Dla bardziej zaawansowanych użytkowników, oto kilka dodatkowych opcji konfiguracji SSH:

Konfiguracja pliku ~/.ssh/config

Możesz utworzyć lub edytować plik konfiguracyjny SSH (~/.ssh/config w systemach Unix/Linux lub C:\Users\Twoja_nazwa_użytkownika\.ssh\config w systemie Windows), aby uprościć logowanie:

Host iqhost
    HostName hostXXXX.iqhs.eu
    User hostXXXX
    IdentityFile ~/.ssh/id_ed25519
    Port 22

Po takiej konfiguracji, możesz po prostu wpisać:

ssh iqhost

aby połączyć się z serwerem.

Konfiguracja klucza z ograniczonym dostępem

Możesz dodać dodatkowe opcje do klucza publicznego, które ograniczą jego uprawnienia:

command="tylko_określone_polecenie",no-port-forwarding,no-agent-forwarding,no-X11-forwarding ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK8...

Taka konfiguracja pozwala na wykonanie tylko określonego polecenia na serwerze, co jest przydatne dla zautomatyzowanych zadań.


Powiązane artykuły:

Czy ten artykuł był pomocny?

Twoja strona WordPress działa wolno?

Sprawdź nasz hosting WordPress z ultraszybkimi dyskami NVMe i konfiguracją serwera zoptymalizowaną pod kątem wydajności. Doświadcz różnicy już dziś!

Sprawdź ofertę hostingu
30-dniowa gwarancja zwrotu pieniędzy