Co to jest protokół SSH?
W tym artykule omówimy, co oznacza ssh? Protokół ssh, znany jako Secure Shell lub Secure Socket Shell, zapewnia użytkownikom, zwłaszcza administratorom systemu, bezpieczny sposób uzyskiwania dostępu do komputerów za pośrednictwem niezabezpieczonej sieci.
Oprócz zapewniania bezpiecznych usług sieciowych, ssh odnosi się do zestawu innych usług, które implementują protokół ssh. Bezpieczna powłoka zapewnia silne uwierzytelnianie hasłem, uwierzytelnianie klucza publicznego i szyfrowaną komunikację danych między dwoma komputerami połączonymi w otwartej sieci, takiej jak Internet. Oprócz zapewnienia silnego szyfrowania protokół ssh jest powszechnie używany przez administratorów sieci do zdalnego zarządzania komputerami i programami, umożliwiając im łączenie się z innym komputerem przez sieć, wykonywanie poleceń i przesyłanie plików z jednego komputera na drugi.
Należy zauważyć, że ssh odnosi się zarówno do zaszyfrowanego protokołu, jak i zestawu aplikacji, które go implementują. Ssh wykorzystuje model klient-serwer i łączy program serwera Secure Shell, który znajduje się na końcu widoku sesji, z serwerem ssh i na tym końcu wykonywana jest sesja. Implementacje jego protokołu często obejmują obsługę protokołów aplikacji używanych do emulacji terminala i przesyłania plików. Ssh można również używać do tworzenia bezpiecznych tuneli dla innych protokołów aplikacji, na przykład do bezpiecznego uruchamiania zdalnych sesji graficznych systemu X Window.
Jak działa protokół ssh?
Secure Shell został stworzony, aby zastąpić niepewne programy emulujące terminal, takie jak Telnet, rlogin (logowanie zdalne) i rsh lub zdalna powłoka. Ssh umożliwia podobną funkcjonalność (logowanie i uruchamianie sesji terminalowych na systemach zdalnych). Ponadto protokół ssh zastępuje programy do przesyłania plików, takie jak protokół przesyłania plików (FTP) i RCP (kopia zdalna).
Najbardziej podstawowym zastosowaniem protokołu ssh jest połączenie się ze zdalnym hostem w celu sesji terminalowej, której polecenie jest następujące:
ssh Nazwa uż[email protected]
To polecenie powoduje, że klient łączy się z serwerem o nazwie serwer.example.com przy użyciu nazwy użytkownika ID UserName. Załóżmy, że jest to pierwsza negocjacja hosta lokalnego i serwera. W takim przypadku użytkownik poprosi Cię o odcisk palca klucza publicznego zdalnego hosta i zostanie poproszony o połączenie pomimo braku wcześniejszego połączenia:
Nie można ustalić autentyczności hosta „sample.ssh.com”.
Odcisk palca klucza DSA to 01:23:45:67:89:ab:cd:ef:ff:fe:dc:ba:98:76:54:32:10.
Czy na pewno chcesz kontynuować łączenie (tak/nie)?
Odpowiedź „tak” w odpowiednim czasie powoduje kontynuację sesji, a klucz hosta jest zapisywany w dobrze znanym pliku local_hosts systemu lokalnego, który jest plikiem ukrytym i jest domyślnie przechowywany w ukrytym katalogu tytułowym o nazwie /.ssh/known_hosts w katalog domowy użytkownika. Po zapisaniu kluczy hosta w plikach Known_Host system klienta może ponownie połączyć się bezpośrednio z tym serwerem bez konieczności zatwierdzania, a klucze hosta potwierdzają połączenie.
Zastosowania wykorzystania protokołu ssh
Protokół ssh we wszystkich centrach danych jest domyślnie dostarczany z każdym serwerem Unix, Linux i Mac. Połączenia protokołem Ssh zapewniają bezpieczeństwo wielu różnych typów komunikacji między urządzeniem a zdalnym hostem, w tym bezpieczny zdalny dostęp do zasobów, zdalne wykonywanie poleceń, dostarczanie poprawek i aktualizacji oprogramowania i inne. Wykorzystuje się pracę administracyjną lub kierowniczą. Oprócz tworzenia bezpiecznego kanału między komputerami lokalnymi i zdalnymi, protokół ssh służy do zarządzania routerami, sprzętem serwerowym, platformami wirtualizacyjnymi, systemami operacyjnymi (OS), wewnętrznymi systemami zarządzania i programami do przesyłania plików.
Secure Shell służy do łączenia się z serwerami, wprowadzania zmian, przesyłania i wychodzenia za pośrednictwem narzędzia lub bezpośrednio przez terminal. Klucze SSH mogą automatyzować dostęp do serwera i są często używane w skryptach systemów kopii zapasowych i narzędziach do zarządzania konfiguracją. Aby zapewnić łatwy dostęp i pracę ponad granicami organizacyjnymi, klucze SSH umożliwiają jednokrotne logowanie (SSO), dzięki czemu użytkownicy mogą przełączać się między kontami bez każdorazowego wpisywania hasła.
Chociaż SSH odgrywa ważną rolę w zarządzaniu tożsamością i dostępem, oferuje więcej niż tylko szyfrowane połączenie. Cały ruch SSH jest szyfrowany. Członkowie, w przypadku których użytkownicy przesyłają plik, przeglądają sieć lub wykonują polecenia, ich działania są prywatne.
Chociaż protokołu ssh można używać do uwierzytelniania ze zwykłym identyfikatorem i hasłem, protokół ssh w większym stopniu opiera się na parach kluczy publicznych w celu wzajemnego uwierzytelniania hostów. Użytkownicy nadal muszą używać swojego identyfikatora użytkownika i hasła – lub innych metod uwierzytelniania – aby łączyć się ze zdalnymi hostami. Mimo to komputer lokalny i komputer zdalny są uwierzytelniane oddzielnie. Odbywa się to poprzez generowanie unikalnej pary kluczy publicznych dla każdego hosta w komunikacji. Każda sesja wymaga dwóch par kluczy publicznych: jednej do uwierzytelniania urządzenia zdalnego na urządzeniu lokalnym i drugiej do uwierzytelniania urządzenia zdalnego na urządzeniu lokalnym. Uwierzytelnianie urządzenia lokalnego na urządzeniu zdalnym.
Możliwości
Funkcje udostępniane przez protokół ssh obejmują:
- Zapewnia zdalny dostęp do systemów lub urządzeń sieciowych z obsługą protokołu ssh dla użytkowników i bezpieczeństwo zautomatyzowanych procesów.
- Bezpieczne i interaktywne sesje przesyłania plików
- Przesyłaj pliki automatycznie i bezpiecznie
- Wydawanie poleceń na zdalnych urządzeniach lub systemach
- Bezpieczne zarządzanie elementami infrastruktury sieciowej
Protokół ssh może interaktywnie umożliwiać sesje terminalowe i powinien być używany zamiast mniej bezpiecznego programu Telnet. Ponadto protokół ssh jest zwykle używany w skryptach i innym oprogramowaniu, dzięki czemu programy i systemy mogą uzyskać zdalny i bezpieczny dostęp do danych i innych zasobów.
Historia
Pierwsza wersja protokołu ssh została opublikowana i zaprojektowana przez Tatu Ylönena w 1995 r., który był wówczas pracownikiem naukowym na Politechnice Helsińskiej, a później założył SSH Communications Security, dostawcę cyberbezpieczeństwa z siedzibą w Finlandii. Z biegiem czasu w ssh-1 wykryto różne wady i obecnie ta wersja nie jest już używana i nie jest bezpieczna w użyciu. ssh-2 Obecna wersja protokołów Secure Shell została przyjęta w 2006 roku jako specyfikacja ścieżki standardów przez Internet Engineering Task Force (IETF).
SSH-2 jest niekompatybilny z SSH-1 i wykorzystuje wymianę kluczy Diffiego-Hellmana oraz silniejsze zintegrowane uwierzytelnianie, które wykorzystuje kody weryfikacyjne uwierzytelniania wiadomości w celu poprawy bezpieczeństwa. Klienci i serwery SSH mogą korzystać z kilku metod szyfrowania, z których najpopularniejsze to Advanced Encryption Standard (AES) i Blowfish. Nie są jednak znane żadne możliwe do wykorzystania luki w zabezpieczeniach protokołu SSH-2, chociaż przecieki Edwarda Snowdena z 2013 r. sugerowały, że Agencja Bezpieczeństwa Narodowego (NSA) może być w stanie odszyfrować część ruchu SSH.
Bezpieczeństwo protokołu
Aby móc korzystać z protokołu ssh, firmy muszą stosować metody zarządzania kluczami hosta przechowywanymi w systemach klientów, które z czasem mogą się kumulować, zwłaszcza w przypadku personelu informatycznego, który musi mieć do nich dostęp w celach zarządczych. Zdalne hosty mają dostęp. Ponieważ dane przechowywane w znanym pliku ssh z hosta mogą służyć do uwierzytelniania dostępu do zdalnych systemów, organizacje powinny być świadome istnienia tych plików i nawet po wylogowaniu powinno być standardową procedurą. Zachowaj kontrolę nad plikami, ponieważ dyski twarde mogą przechowywać te dane w postaci zwykłego tekstu. Chociaż możliwe jest wydanie polecenia ssh zawierającego identyfikator i hasło w celu uwierzytelnienia komputera lokalnego użytkownika na koncie użytkownika na zdalnym hoście, może to zapewnić osobie atakującej dostęp do kodu źródłowego…
Główna różnica między protokołem ssh i Telnet
Protokół Telnet był jednym z pierwszych protokołów aplikacji w Internecie – drugim jest FTP – który służy do uruchamiania i utrzymywania sesji symulacji terminala na zdalnym hoście. Warto zauważyć, że protokół ssh i Telnet są funkcjonalnie podobne, z tą główną różnicą, że protokół ssh wykorzystuje szyfrowanie kluczem publicznym do uwierzytelniania punktów końcowych podczas konfigurowania sesji terminalowej oraz szyfrowania poleceń i danych wyjściowych sesji. Jednocześnie Telnet jest używany głównie do emulacji terminala.
Warto zauważyć, że protokół ssh może być używany do emulacji terminala podobnie jak polecenie logowania, a także do wydawania zdalnych poleceń, takich jak rsh, przesyłania plików za pomocą protokołu przesyłania plików ssh (SFTP) i tunelowania do innych programów. Należy skorzystać z innej aplikacji.
Główna różnica między protokołem ssh a SSL/TLS
Protokół Transport Layer Security (TSL), który aktualizuje protokół Secure Sockets Layer (SSL), ma za zadanie zabezpieczać ruch sieciowy w warstwie transportowej. Ponadto protokół SSH działa na warstwie transportowej, ale istnieją różnice między tymi dwoma protokołami.
Chociaż oba opierają się na parach kluczy publicznych lub prywatnych do uwierzytelniania hostów, protokół TLS jest uwierzytelniany tylko za pomocą jednej pary kluczy. Mimo to protokół ssh wykorzystuje osobną parę kluczy do uwierzytelniania każdego połączenia, po jednym dla każdego połączenia z urządzenia lokalnego do urządzenia zdalnego i drugiego do potwierdzania połączenia z urządzenia zdalnego do urządzenia lokalnego. Kolejna różnica między protokołem ssh a TLS polega na tym, że TLS szyfruje lub nie uwierzytelnia połączeń, ale ssh szyfruje i uwierzytelnia wszystkie połączenia.
SSH zapewnia specjalistom ds. IT i bezpieczeństwa informacji (infosec) bezpieczny mechanizm zdalnego zarządzania klientami SSH. Protokół Ssh uwierzytelnia urządzenia zamiast wymagać potwierdzenia hasła do komunikacji między klientem a serwerem. Umożliwia to personelowi IT łączenie się z systemami zdalnymi i zmianę ustawień protokołu SSH, w tym dodawanie lub usuwanie par kluczy hosta w plikach znane_hosty.
Realizacja
Protokół ssh został zaimplementowany jako otwarty protokół dla większości komputerowych systemów operacyjnych. Implementacja OpenSSH o otwartym kodzie źródłowym jest najczęściej spotykana w systemach Linux, Unix i innych systemach operacyjnych opartych na dystrybucji oprogramowania Berkeley lub BSD, w tym w systemie macOS firmy Apple. . OpenSSH został po raz pierwszy wprowadzony w Windows PowerShell w 2015 r., a w 2018 r. do systemu Windows 10 dodano obsługę OpenSSH. Chociaż protokół ssh jest dostępny w większości systemów operacyjnych typu UNIX, przeniesiona wersja OpenSSH firmy Microsoft musi być jawnie włączona w programie Ustawienia systemu Windows.
PuTTY to kolejna implementacja protokołu ssh typu open source. Chociaż jest obecnie dostępny dla systemów Windows, macOS i Unix/BSD, PuTTY został pierwotnie napisany do działania w systemie operacyjnym Windows i od dawna jest jedną z najlepszych opcji korzystania z protokołu ssh w systemie Wind. Większość implementacji zestawu protokołów ssh, takich jak trzy narzędzia – slogan (bezpieczne logowanie), ssh i SCP (bezpieczna kopia) – to bezpieczne wersje wcześniejszych niepewnych usług uniksowych: login, rsh i RCP.
Protokół ssh wykorzystuje szyfrowanie klucza publicznego do uwierzytelnienia komputera zdalnego i umożliwia komputerowi zdalnemu uwierzytelnienie użytkownika, jeśli to konieczne. W ramach różnych licencji open source i zastrzeżonych obecnie dostępnych jest dziesiątki implementacji protokołu ssh dla systemów operacyjnych. Chociaż istnieją graficzne implementacje protokołu ssh, program ten jest zwykle wywoływany z wiersza poleceń lub wykonywany jako część skryptu. Uruchomienie samego polecenia protokołu ssh bez argumentów, takich jak host docelowy lub identyfikator użytkownika, zwraca listę parametrów i opcji polecenia protokołu ssh.
Najbardziej podstawową formą polecenia ssh jest wywołanie programu i podanie docelowej nazwy hosta lub adresu protokołu internetowego (IP):
serwer ssh.example.org
Spowoduje to połączenie z serwerem.example.org. Host docelowy odpowie, wysyłając hasło dla identyfikatora użytkownika konta, na którym działa klient. Innymi słowy, jeśli identyfikator użytkownika to Smith, zdalny host poprosi o hasło powiązane z kontem Smith na zdalnym hoście. W wielu przypadkach identyfikator użytkownika zdalnego hosta będzie inny i w takim przypadku polecenie musi zostać wydane z identyfikatorem użytkownika zdalnego hosta. Podobnie jak następujące polecenie:
ssh zdalny_host_uż[email protected] Protokół ssh może również używać wiersza poleceń do wydania pojedynczego polecenia na zdalnym hoście, a następnie wyjścia – na przykład ssh przykład.org ls
To polecenie wykonuje polecenie ls Uniksa, które wyświetla zawartość wszystkich katalogów na zdalnym hoście. Chociaż ten przykład jest trywialny, pokazuje, że protokołu ssh można używać do wykonywania poleceń na zdalnym hoście. Na przykład można skonstruować polecenie udostępniające początkowy serwer, który zapewnia zdalnemu urządzeniu dostęp do pojedynczego pliku — lub innego zasobu — po uzyskaniu dostępu do pliku przez określony zdalny host. Gotowe, zamyka serwer.
Oprócz wykonywalnego protokołu ssh, SSH zawiera inne wykonywalne polecenia, które są używane w wierszu poleceń w celu realizacji dodatkowych funkcji, w tym:
- Uruchamia serwer ssh, który czeka na żądania połączenia ssh i umożliwia autoryzowanym systemom łączenie się z hostem lokalnym.
- Ssh-keygen to program do tworzenia nowej pary kluczy uwierzytelniających dla protokołu ssh, które można wykorzystać do automatycznego logowania, implementacji SSO i uwierzytelniania hosta.
- Ssh-copy-id to program służący do kopiowania, instalowania i konfigurowania klucza SSH na serwerze w celu automatycznego logowania bez hasła i SSO.
- Ssh-agent to program pomocniczy, który śledzi klucze tożsamości i ich hasła — z których pochodzą klucze szyfrowania SSH — i umożliwia użytkownikom logowanie się bez konieczności ponownego wprowadzania haseł. Użyj kluczy identyfikacyjnych.
- Ssh-add służy do dodawania klucza do agenta uwierzytelniającego SSH, a ssh-agent służy do implementacji SSO przy użyciu SSH.
- Scp to program kopiujący pliki z jednego komputera na drugi i będący wersją RCP z zabezpieczeniem SSH.
- sftp to program kopiujący pliki z jednego komputera na drugi i będący wersją SSH protokołu FTP, głównego protokołu przesyłania plików. SFTP stał się mechanizmem udostępniania plików w Internecie i
- FTP zastępuje FTP/S (FTP Secure), protokół umożliwiający korzystanie z FTP przez tunel SSL/TLS.
Często Zadawane Pytania
Jakie są najczęstsze zastosowania protokołu ssh?
Wśród najczęstszych zastosowań protokołu ssh można wymienić:
- Zdalny dostęp do systemów lub urządzeń sieciowych
- Bezpieczne i interaktywne sesje przesyłania plików
- Przesyłaj pliki automatycznie i bezpiecznie
- Bezpieczne zarządzanie elementami infrastruktury sieciowej
- Wydawanie poleceń na zdalnych urządzeniach lub systemach
Jaka jest różnica między protokołem ssh a SSL/TLS?
Zarówno protokoły ssh, jak i SSL/TLS znajdują się w warstwie transportowej.
W jakich systemach operacyjnych można zaimplementować protokół ssh?
Protokół ssh można zaimplementować w większości komputerowych systemów operacyjnych, ale najczęściej można go spotkać w systemach Linux i Unix. Oraz inne systemy operacyjne Berkeley Software Distribution lub oparte na BSD, w tym macOS firmy Apple.
Pobierz motywy WordPressPobierz motywy WordPressPobierz motywy WordPressPobierz najlepsze motywy WordPress do pobrania za darmopłatny kurs udemy do pobrania za darmopobierz oprogramowanie lawyBezpłatne pobieranie motywów WordPressZG93bmxvYWQgbHluZGEgY291cnNlIGZyZWU=