Jak tworzyć i instalować klucze SSH z powłoki systemu Linux

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.

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

ssh dave @ sulaco w oknie terminala

Są proszeni o podanie hasła, wpisują je i są połączeni z Sulaco. Ich wiersz poleceń zmienia się, aby to potwierdzić.

użytkownik dave połączył się z sulaco używając ssh i hasła

To wszystko potwierdzenie, którego potrzebujemy. Więc użytkownik Dave może odłączyć się od Sulaco za pomocą polecenia exit:

exit

użytkownik dave rozłączył się z sulaco

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

ssh-keygen w oknie terminala

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.

Potwierdzenie lokalizacji przechowywania kluczy SSH w oknie terminala

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.

Pytaj o hasło w oknie terminala

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.

Ukończono generowanie kluczy i losowa grafika wyświetlana w oknie terminala

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

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.

ssh-copy-id z pytaniem o hasło w oknie terminala

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.

klucz pulic został pomyślnie przesłany w oknie terminala

Łączenie za pomocą kluczy SSH

Postępuj zgodnie z sugestią i spróbuj połączyć się ze zdalnym komputerem.

ssh dave@sulaco

ssh dave @ sulaco w oknie terminala

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.

okno dialogowe żądania hasła

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.

podłączenie zdalnego komputera w oknie terminala

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

ssh key łączenie i rozłączanie w oknie terminala

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.