Jak przesłać klucz publiczny SSH do istniejącego serwera VPS?
AlexHost używa kluczy SSH jako jednego z najbezpieczniejszych i najskuteczniejszych sposobów uwierzytelniania. Jeśli masz istniejący VPS i chcesz przełączyć się na używanie kluczy SSH (lub dodać nowy klucz), jest to prosty proces, który poprawia bezpieczeństwo, umożliwiając logowanie bez hasła. W tym przewodniku pokażemy, jak przesłać klucz publiczny SSH do istniejącego serwera VPS, zapewniając bezpieczne i proste logowanie w przyszłości.
Dlaczego warto używać kluczy SSH?
Klucze SSH są szeroko stosowane do zabezpieczania dostępu do zdalnych serwerów. Oferują one kilka zalet w porównaniu z tradycyjnymi hasłami:
- Większe bezpieczeństwo: Klucze SSH wykorzystują uwierzytelnianie kryptograficzne, które jest znacznie trudniejsze do złamania niż nawet silne hasła.
- Logowanie bez hasła: Po skonfigurowaniu klucze SSH umożliwiają logowanie się do serwera bez konieczności wpisywania hasła.
- Ochrona przed atakami Brute Force: Eliminując hasła, klucze SSH zapobiegają atakom siłowym mającym na celu odgadnięcie danych logowania.
Wymagania wstępne
Przed rozpoczęciem będziesz potrzebować:
- Dostęp do istniejącego VPS: Oznacza to, że możesz obecnie zalogować się do VPS za pomocą SSH, prawdopodobnie z hasłem.
- Para kluczy SSH: Jeśli jej nie posiadasz, dowiesz się jak ją wygenerować.
- Podstawowa znajomość poleceń SSH: Wymagana jest znajomość interfejsu wiersza poleceń (CLI).
Krok 1: Wygeneruj parę kluczy SSH (jeśli jej nie masz)
Jeśli nie masz jeszcze pary kluczy SSH na komputerze lokalnym, możesz ją utworzyć. Oto jak to zrobić:
Otwórz terminal na komputerze lokalnym (macOS lub Linux) i uruchom następujące polecenie:
To polecenie utworzy 4096-bitową parę kluczy szyfrowania RSA. Podczas procesu zostaniesz zapytany, gdzie zapisać klucz:
- Naciśnij Enter, aby zapisać klucz w domyślnej lokalizacji(~/.ssh/id_rsa).
- Opcjonalnie dodaj hasło dla dodatkowej warstwy bezpieczeństwa (zalecane) lub naciśnij Enter, aby pominąć ten krok.
Ten proces generuje dwa pliki:
- id_rsa: klucz prywatny (przechowuj go bezpiecznie i nigdy go nie udostępniaj).
- id_rsa.pub: Twój klucz publiczny (to jest to, co prześlesz na serwer).
Następnie wyświetl klucz publiczny, aby móc go skopiować:
ssh root@your_vps_ip
Skopiuj dane wyjściowe (klucz publiczny), ponieważ będziesz ich potrzebować w następnym kroku.
Krok 2: Zaloguj się do swojego VPS
Aby dodać nowy klucz publiczny SSH do maszyny wirtualnej, musisz zalogować się do niej przy użyciu bieżącej metody (za pomocą hasła lub istniejącego klucza). Otwórz terminal i uruchom go:
Zastąp your_vps_ip rzeczywistym adresem IP serwera VPS. Jeśli logujesz się za pomocą innego konta użytkownika (nie root), zastąp root odpowiednią nazwą użytkownika.
Krok 3: Utwórz katalog .ssh (jeśli nie istnieje)
Po zalogowaniu upewnij się, że katalog. ssh istnieje dla używanego konta użytkownika. Jeśli nie istnieje, utwórz go za pomocą następującego polecenia:
To polecenie tworzy katalog .ssh i ustawia odpowiednie uprawnienia, aby tylko bieżący użytkownik miał do niego dostęp.
Krok 4: Dodanie klucza publicznego do pliku authorized_keys
Teraz, gdy masz już katalog . ssh, musisz przesłać swój klucz publiczny SSH do VPS, dodając go do pliku authorized_keys. Plik ten zawiera klucze publiczne, które są dozwolone do uwierzytelniania na serwerze.
- Otwórz plik authorized_keys za pomocą edytora tekstu, takiego jak nano:
Jeśli plik nie istnieje, to polecenie go utworzy.
- Wklej swój publiczny klucz SSH (ten, który skopiowałeś wcześniej z id_rsa.pub ) do pliku. Kliknij prawym przyciskiem myszy lub użyj funkcji wklejania terminala, aby wstawić klucz.
- Zapisz i zamknij plik, naciskając Ctrl X, a następnie Y i naciśnij Enter.
- Ustaw prawidłowe uprawnienia w pliku authorized_keys:
Ten krok zapewnia, że plik jest dostępny tylko dla bieżącego użytkownika.
Krok 5: Przetestuj logowanie za pomocą klucza SSH
Po dodaniu klucza SSH do VPS należy przetestować konfigurację, aby upewnić się, że można zalogować się bez hasła.
- Wyloguj się z bieżącej sesji SSH, wpisując:
- Teraz spróbuj zalogować się ponownie do VPS przy użyciu klucza SSH:
Jeśli wszystko jest skonfigurowane poprawnie
- zostaniesz zalogowany do VPS bez konieczności podawania hasła.
Krok 6 (opcjonalnie): Wyłącz uwierzytelnianie hasłem
Aby zapewnić dodatkowe bezpieczeństwo, można wyłączyć uwierzytelnianie na podstawie hasła, umożliwiając dostęp do serwera VPS tylko użytkownikom posiadającym klucz SSH. Ten krok jest opcjonalny, ale zalecany w środowiskach, w których bezpieczeństwo jest priorytetem.
Aby wyłączyć uwierzytelnianie hasłem:
- Otwórz plik konfiguracyjny SSH na serwerze VPS:
- Znajdź następujące wiersze w pliku konfiguracyjnym i upewnij się, że są ustawione w następujący sposób:
- Zapisz i zamknij plik, naciskając Ctrl X , a następnie Y i naciśnij Enter.
- Uruchom ponownie usługę SSH, aby zastosować zmiany:
Teraz tylko użytkownicy z prawidłowym kluczem SSH będą mogli zalogować się do VPS.
Krok 7: Zarządzanie wieloma kluczami SSH
Jeśli zarządzasz wieloma serwerami VPS lub serwerami zdalnymi, możesz chcieć uporządkować klucze SSH i skonfigurować plik ~/.ssh/config dla wygody. Oto przykładowa konfiguracja, która pozwala określić różne klucze SSH dla różnych serwerów:
Po dodaniu tego do pliku konfiguracyjnego SSH(~/.ssh/config) można po prostu zalogować się za pomocą:
Wnioski
Dodanie klucza publicznego SSH do istniejącego serwera VPS znacznie zwiększa bezpieczeństwo zdalnego serwera, jednocześnie upraszczając proces logowania. Postępując zgodnie z tym przewodnikiem, można łatwo przesłać klucz publiczny SSH i skonfigurować VPS do logowania bez hasła. Aby zwiększyć bezpieczeństwo, warto rozważyć całkowite wyłączenie uwierzytelniania hasłem, zapewniając, że tylko autoryzowane klucze SSH mogą uzyskać dostęp do VPS. Taka konfiguracja nie tylko chroni serwer przed nieautoryzowanym dostępem, ale także usprawnia przepływ pracy, eliminując konieczność wprowadzania haseł przy każdym logowaniu.