Traktuj poważnie cyberbezpieczeństwo i używaj kluczy SSH, aby uzyskać dostęp do zdalnego logowania. Są bezpieczniejszym sposobem łączenia niż hasła. Pokazujemy, jak generować, instalować i używać kluczy SSH w systemie Linux.
Spis treści:
Co jest nie tak z hasłami?
Secure shell (SSH) to szyfrowany protokół używany do logowania się do kont użytkowników na zdalnych komputerach z systemem Linux lub Unix. Zwykle takie konta użytkowników są zabezpieczone hasłami. Logując się do komputera zdalnego, musisz podać nazwę użytkownika i hasło do konta, na które się logujesz.
Hasła są najpowszechniejszym sposobem zabezpieczenia dostępu do zasobów komputerowych. Mimo to zabezpieczenia oparte na hasłach mają swoje wady. Ludzie wybierają słabe hasła, dzielą się hasłami, używają tego samego hasła w wielu systemach i tak dalej.
Klucze SSH są znacznie bezpieczniejsze, a po skonfigurowaniu są równie łatwe w użyciu jak hasła.
Co sprawia, że klucze SSH są bezpieczne?
Klucze SSH są tworzone i używane w parach. Te dwa klucze są połączone i zabezpieczone kryptograficznie. Jeden to Twój klucz publiczny, a drugi to Twój klucz prywatny. Są powiązane z Twoim kontem użytkownika. Jeśli wielu użytkowników na jednym komputerze korzysta z kluczy SSH, każdy z nich otrzyma własną parę kluczy.
Twój klucz prywatny jest instalowany (zwykle) w folderze domowym, a klucz publiczny jest instalowany na komputerze zdalnym – lub komputerach – do których będziesz musiał mieć dostęp.
Twój klucz prywatny musi być bezpieczny. Jeśli jest dostępny dla innych, znajdujesz się w takiej samej sytuacji, jak gdyby oni odkryli Twoje hasło. Rozsądnym – i wysoce zalecanym – środkiem ostrożności jest zaszyfrowanie klucza prywatnego na komputerze za pomocą solidnego hasło.
Klucz publiczny można swobodnie udostępniać bez uszczerbku dla bezpieczeństwa. Nie można określić, jaki jest klucz prywatny, na podstawie sprawdzenia klucza publicznego. Klucz prywatny może szyfrować wiadomości, które może odszyfrować tylko klucz prywatny.
Kiedy wysyłasz żądanie połączenia, komputer zdalny używa swojej kopii klucza publicznego do utworzenia zaszyfrowanej wiadomości. Wiadomość zawiera identyfikator sesji i inne metadane. Tylko komputer posiadający klucz prywatny – Twój komputer – może odszyfrować tę wiadomość.
Komputer uzyskuje dostęp do klucza prywatnego i odszyfrowuje wiadomość. Następnie wysyła własną zaszyfrowaną wiadomość z powrotem do komputera zdalnego. Ta zaszyfrowana wiadomość zawiera między innymi identyfikator sesji, który został odebrany z komputera zdalnego.
Komputer zdalny wie teraz, że musisz być tym, za kogo się podajesz, ponieważ tylko Twój klucz prywatny może wyodrębnić identyfikator sesji z wiadomości wysłanej do Twojego komputera.
Upewnij się, że masz dostęp do komputera zdalnego
Upewnij się, że możesz zdalnie połączyć się z komputerem zdalnym i zalogować się do niego. Dowodzi to, że nazwa użytkownika i hasło mają prawidłowe konto skonfigurowane na komputerze zdalnym oraz że poświadczenia są prawidłowe.
Nie próbuj nic robić z kluczami SSH, dopóki nie zweryfikujesz, że możesz używać SSH z hasłami do łączenia się z komputerem docelowym.
W tym przykładzie osoba z kontem użytkownika o nazwie dave jest zalogowana na komputerze o nazwie newsblog.pl. Zamierzają połączyć się z innym komputerem o nazwie Sulaco.
Wpisują następujące polecenie:
ssh dave@sulaco
Są proszeni o podanie hasła, wpisują je i są połączeni z Sulaco. Ich wiersz poleceń zmienia się, aby to potwierdzić.
To wszystko potwierdzenie, którego potrzebujemy. Więc użytkownik Dave może odłączyć się od Sulaco za pomocą polecenia exit:
exit
Otrzymują wiadomość o rozłączeniu, a ich wiersz poleceń wraca do dave @ newsblog.pl.
Tworzenie pary kluczy SSH
Te instrukcje zostały przetestowane w dystrybucjach Linuksa Ubuntu, Fedora i Manjaro. We wszystkich przypadkach proces był identyczny i nie było potrzeby instalowania nowego oprogramowania na żadnej z maszyn testowych.
Aby wygenerować klucze SSH, wpisz następujące polecenie:
ssh-keygen
Rozpoczyna się proces generowania. Zostaniesz zapytany, gdzie chcesz przechowywać klucze SSH. Naciśnij klawisz Enter, aby zaakceptować domyślną lokalizację. Uprawnienia do folderu zapewnią go tylko do Twojego użytku.
Zostaniesz poproszony o podanie hasła. Zdecydowanie zalecamy wprowadzenie tutaj hasła. I pamiętaj, co to jest! Możesz nacisnąć Enter, aby nie mieć hasła, ale to nie jest dobry pomysł. Hasło składające się z trzech lub czterech niepowiązanych ze sobą słów, połączonych ze sobą, tworzy bardzo solidne hasło.
Zostaniesz poproszony o ponowne wprowadzenie tego samego hasła, aby potwierdzić, że wpisałeś to, co myślałeś, że wpisałeś.
Klucze SSH są generowane i przechowywane dla Ciebie.
Możesz zignorować wyświetlany „randomart”. Niektóre komputery zdalne mogą wyświetlać losową grafikę przy każdym połączeniu. Chodzi o to, że rozpoznasz, czy losowa grafika się zmieni, i będziesz podejrzliwy w stosunku do połączenia, ponieważ oznacza to, że klucze SSH dla tego serwera zostały zmienione.
Instalowanie klucza publicznego
Musimy zainstalować Twój klucz publiczny na Sulaco, komputerze zdalnym, aby wiedział, że klucz publiczny należy do Ciebie.
Robimy to za pomocą polecenia ssh-copy-id. To polecenie nawiązuje połączenie z komputerem zdalnym, tak jak zwykłe polecenie ssh, ale zamiast zezwalać na logowanie, przekazuje publiczny klucz SSH.
ssh-copy-id dave@sulaco
Chociaż nie logujesz się do komputera zdalnego, nadal musisz uwierzytelniać się za pomocą hasła. Komputer zdalny musi zidentyfikować konto użytkownika, do którego należy nowy klucz SSH.
Pamiętaj, że hasło, które musisz tutaj podać, to hasło do konta użytkownika, na które się logujesz. To nie jest właśnie utworzone hasło.
Po zweryfikowaniu hasła ssh-copy-id przesyła Twój klucz publiczny do zdalnego komputera.
Powrócisz do wiersza poleceń swojego komputera. Nie jesteś połączony z komputerem zdalnym.
Łączenie za pomocą kluczy SSH
Postępuj zgodnie z sugestią i spróbuj połączyć się ze zdalnym komputerem.
ssh dave@sulaco
Ponieważ proces łączenia będzie wymagał dostępu do klucza prywatnego, a klucze SSH zostały zabezpieczone hasłem, musisz podać swoje hasło, aby połączenie mogło być kontynuowane.
Wprowadź swoje hasło i kliknij przycisk Odblokuj.
Po wprowadzeniu hasła w sesji terminala nie będziesz musiał wprowadzać go ponownie, dopóki masz otwarte okno terminala. Możesz łączyć się i rozłączać z dowolną liczbą sesji zdalnych, bez ponownego wpisywania hasła.
Możesz zaznaczyć pole wyboru „Automatycznie odblokuj ten klucz, gdy jestem zalogowany”, ale zmniejszy to Twoje bezpieczeństwo. Jeśli zostawisz komputer bez nadzoru, każdy może nawiązać połączenie ze zdalnymi komputerami, które mają Twój klucz publiczny.
Po wprowadzeniu hasła zostaniesz połączony z komputerem zdalnym.
Aby zweryfikować proces jeszcze raz od końca do końca, rozłącz się za pomocą polecenia exit i ponownie połącz się z komputerem zdalnym z tego samego okna terminala.
ssh dave@sulaco
Zostaniesz połączony z komputerem zdalnym bez konieczności podawania hasła lub hasła.
Bez haseł, ale zwiększone bezpieczeństwo
Eksperci od cyberbezpieczeństwa mówią o czymś, co nazywa się tarciami bezpieczeństwa. To drobny ból, który musisz znosić, aby uzyskać dodatkowe bezpieczeństwo. Zwykle wymagany jest jakiś dodatkowy krok lub dwa, aby przyjąć bezpieczniejszą metodę pracy. Większość ludzi tego nie lubi. W rzeczywistości wolą niższe bezpieczeństwo i brak tarcia. Taka jest ludzka natura.
Dzięki kluczom SSH zyskujesz większe bezpieczeństwo i wygodę. To zdecydowanie wygrana-wygrana.