Opublikowany
Jeśli chcesz używać protokołu SSH w systemie Linux do zdalnego zarządzania innymi komputerami, ten przewodnik przeprowadzi Cię przez cały proces.
W dzisiejszym wzajemnie połączonym krajobrazie możliwość zarządzania komputerami z różnych lokalizacji geograficznych wzrosła z luksusu do konieczności. Można to zrobić na kilka sposobów, w zależności od używanego systemu operacyjnego. Dla Systemy oparte na systemie Linux, najpopularniejszym i najbezpieczniejszym sposobem zdalnego zarządzania komputerem jest użycie SSH (Lub Bezpieczna powłoka).
Przyjrzyjmy się, jak używać protokołu SSH w systemie Linux do łączenia się z innymi komputerami.
Niezbędne pierwsze kroki
Zanim będziesz mógł pomyślnie połączyć się z innym komputerem z systemem Linux za pomocą protokołu SSH, musisz spełnić następujące wymagania wstępne:
- Komputer docelowy musi pozostać włączony i podłączony do sieci.
- Należy zainstalować i aktywować niezbędne oprogramowanie klienckie i serwerowe.
- Musisz znać adres IP lub nazwę hosta maszyny docelowej.
- Muszą być dostępne odpowiednie uprawnienia do zdalnego dostępu.
- Należy skonfigurować zaporę sieciową na komputerze zdalnym zezwól na połączenie przychodzące.
Jeśli uzyskujesz dostęp do komputera z systemem Linux obsługiwanego, powiedzmy, przez Twoją firmę hostingową, powinna ona już się tym wszystkim zająć. Następnie może być konieczne wykonanie podstawowej instalacji oprogramowania na własnym komputerze z systemem Linux.
Korzystanie z SSH w systemie Linux: praktyczny przewodnik
Nawiązanie funkcjonalnego połączenia SSH wymaga modułów oprogramowania klienta i serwera. OpenSSH służy jako alternatywa typu open source głównie dla platform Linux.
Aby zainstalować odpowiedniego klienta OpenSSH, będziesz potrzebować dostępu do terminala na komputerze lokalnym. Należy pamiętać, że w systemach Ubuntu nie ma preinstalowanego serwera SSH.
Instalowanie klienta OpenSSH
Przed przystąpieniem do procesu instalacji powinieneś sprawdzić, czy klient SSH już tam nie jest. Aby to zrobić, po prostu otwórz okno terminala. Możesz wyszukać „terminal” lub nacisnąć ctrl + alt + t na klawiaturze.
Po otwarciu okna terminala sprawdź obecność klienta SSH, wpisując:
$ ssh
Jeśli na komputerze z systemem Linux jest już zainstalowany klient SSH, na ekranie pojawią się następujące informacje.
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host: port] [-w local_tun[:remote_tun]] destination [command [argument ...]]
Jeśli zamiast tego otrzymasz skargę dotyczącą nieznalezienia pliku, będziesz musiał kontynuować instalację klienta OpenSSH. Na szczęście jest to dość proste.
W systemie Ubuntu i innych instalacjach opartych na Debianie po prostu uruchom następującą komendę w terminalu:
$ sudo apt install openssh-client
Jeśli używasz Fedory lub inna dystrybucja to używa mniam zamiast trafny, po prostu uruchom to polecenie:
$ sudo yum -y install openssh-clients
Mogą korzystać z nowszych systemów Fedora dnf Zamiast. Jeśli to brzmi podobnie do ciebie, magiczne polecenie to:
$ sudo dnf install -y openssh-clients
Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, a wkrótce będziesz gotowy do pracy.
Inicjowanie połączenia SSH
Po upewnieniu się, że klient SSH jest zainstalowany na komputerze z systemem Linux, czas nawiązać pierwsze połączenie. Będąc nadal w oknie terminala, wydaj następujące polecenie:
$ ssh username@host_ip_address
Jeśli nazwy użytkowników są takie same na komputerach lokalnych i zdalnych, po prostu wpisz:
$ ssh host_ip_address
Przy pierwszym połączeniu zostanie wyświetlony monit z pytaniem, czy chcesz kontynuować łączenie się z nieznanym komputerem. W tym momencie wpisz Tak i kontynuuj.
Wprowadź swoje hasło, pamiętając, że podczas wprowadzania nie będziesz otrzymywać żadnych informacji na ekranie. Po zakończeniu powinieneś zalogować się na zdalny serwer i móc rozpocząć wykonywanie dowolnego zadania, które chcesz wykonać na tym komputerze.
Zrozumienie protokołu SSH: przegląd wysokiego poziomu
Secure Shell, czyli SSH — czasami określany jako Secure Socket Shell — to protokół umożliwiający bezpieczną łączność ze zdalnymi serwerami lub komputerami za pośrednictwem interfejsu tekstowego.
Po uwierzytelnieniu bezpiecznego kanału SSH inicjuje się sesja powłoki, umożliwiając interakcję z wiersza poleceń z komputera lokalnego.
Protokół ten jest dobrze znany i lubiany przez administratorów systemów i sieci, a także każdego, kto potrzebuje bezpiecznego zdalnego zarządzania maszynami.
Mechanika funkcjonalności SSH
Utworzenie kanału SSH wymaga współpracy dwóch kluczowych komponentów: aplikacji po stronie klienta i jej odpowiednika po stronie serwera. Aplikacja kliencka inicjuje połączenie, podając poświadczenia hosta zdalnego.
Po zweryfikowaniu oprogramowanie tworzy zaszyfrowany kanał pomiędzy dwoma komputerami. Na komputerze zdalnym demon SSH stale skanuje wyznaczony port TCP/IP w poszukiwaniu potencjalnych żądań połączeń.
Po otrzymaniu demon przekazuje swoje możliwości oprogramowania i protokołu, po czym oba podmioty wymieniają się danymi identyfikacyjnymi. Szyfrowana sesja następuje, jeśli poświadczenia są zgodne, głównie za pośrednictwem protokołu SSH w wersji 2.
Zaawansowane użycie protokołu SSH: przechowywanie klucza szyfrowania w celu uniknięcia wprowadzenia hasła
Załóżmy teraz, że chcesz tego uniknąć Wprowadź hasło za każdym razem, gdy logujesz się do zdalnego serwera. Do bezpiecznego, wolnego od hasła połączenia z innym komputerem niezbędny jest klucz SSH (Secure Shell).
Być może już posiadasz taki klucz, ale wygenerowanie nowego nigdy nie jest złym pomysłem. Pochodzący z Twojego komputera lokalnego klucz SSH jest podzielony na dwa odrębne elementy: poufny klucz prywatny, którego nigdy nie wolno ujawniać, oraz jego publiczny odpowiednik. Ten klucz publiczny jest następnie rozpowszechniany na wszystkich zdalnych systemach, do których musisz się zalogować.
Niektórzy ludzie mogą zdecydować się na jeden klucz SSH do wielu zastosowań, od zdalnego logowania do systemu po GitLab. Można powiedzieć, jeden klucz do rządzenia nimi wszystkimi. Jednak moje podejście jest bardziej szczegółowe. Używam różnych klawiszy, każdy przeznaczony do określonego podzbioru zadań.
Na przykład używam dedykowanego klucza dla komputerów lokalnych w mojej sieci domowej, co jest kolejnym ekskluzywnym rozwiązaniem klucz do serwerów WWW pod moją administracją i kolejny unikalny klucz do interakcji z Gitem zastępy niebieskie.
Tworzenie nowej pary kluczy SSH
Oto, jak utworzyć nowy klucz SSH, a następnie skopiować go na serwer zdalny, do którego chcesz go używać. Najpierw utwórz klucz za pomocą ssh-keygen.
$ ssh-keygen -t ed25519 -f /.ssh/lan
Flaga -T określa typ klucza do utworzenia, zapewniając szyfrowanie wyższe niż domyślne. The -F flaga ustawia nazwę i lokalizację pliku klucza.
Po wydaniu tego polecenia zostaniesz poproszony o utworzenie hasła dla klucza. To hasło, jeśli je ustawisz, pozostanie lokalne i nie będzie przesyłane przez sieć.
Wysyłanie klucza SSH do serwera zdalnego
Następnie musisz wysłać ten klucz bezpieczeństwa na serwer zdalny. Aby to osiągnąć, po prostu wydaj to polecenie:
$ ssh-copy-id -i /.ssh/lan.pub user@host_ip_address
Zostaniesz poproszony o podanie hasła logowania na zdalnym hoście. Jednak po zakończeniu procesu klucz zostanie zainstalowany na tym komputerze.
Powinieneś przetestować, próbując zalogować się do komputera zdalnego. Kiedy ponownie wykonasz połączenie ssh ze zdalnym hostem, zostaniesz poproszony o podanie hasła klucza, jeśli je ustawiłeś. Pamiętaj, że to nie jest Twoje hasło do logowania. Jest to hasło specyficzne dla tego klucza SSH.
W wielu dystrybucjach, w tym w systemie Linux, monit o podanie hasła zostanie otwarty w formie okna dialogowego. Jak widać na poniższym przykładzie, możesz zaznaczyć pole, aby komputer z systemem Linux zapamiętał hasło. Zmniejszy to jednak bezpieczeństwo klucza.
Po wprowadzeniu hasła do klucza SSH nie musisz wpisywać go ponownie, dopóki nie wylogujesz się z komputera lokalnego.
Inne sposoby korzystania z protokołu SSH
Po wykonaniu tych wszystkich czynności możesz zacząć używać SSH do zdalnego dostępu do innych komputerów z systemem Linux lub Unix. Oczywiście nie chodzi tylko o przejście do wiersza poleceń.
SSH umożliwia także bezpieczne przesyłanie plików pomiędzy komputerami bez korzystania z protokołu FTP. Możesz użyć Bezpiecznej kopii lub scp, aby przenieś te pliki. Jeśli jesteś użytkownikiem systemu Windows 11 i chcesz korzystać z protokołu SSH, masz szczęście, ponieważ klient jest preinstalowany. Możesz nawet generować i używać Klucze SSH w Windows 11.