Klient SSH jest niezbędnym narzędziem dlaKorzystanie z połączenia SSH między dwoma komputerami. Jest przeznaczony do wchodzenia w system operacyjny komputera zdalnego i wykonywania w nim poleceń. Klient jest zainstalowany na komputerze lokalnym użytkownika. Musi zostać uwierzytelniony na serwerze i dopiero potem usługa się rozpoczyna. Klient może zostać zaimplementowany do pracy w terminalu lub mieć graficzny interfejs konfiguracyjny.
Co to jest SSH?
SSH (Secure Shell) tłumaczy się dosłownie jako„Bezpieczna powłoka”. W użyciu, SSH jest protokołem sieciowym, który bezpiecznie zarządza systemem operacyjnym zdalnego hosta w sieci. Zapewnia bezpieczne połączenie, uwierzytelnianie i przesyłanie danych z jednego hosta do drugiego poprzez szyfrowanie ruchu przechodzącego przez niego.
Pozwala tworzyć zaszyfrowane tunelebezpiecznie przesyłaj inne protokoły sieciowe przez niezabezpieczoną sieć, taką jak Internet. Często służy do przekierowania portów jednego komputera na porty innego.
Начало SSH было положено Тату Илёненом из Finlandia w 1995 r., Która wykorzystała go jako bardziej poufny protokół. Ta wersja nosiła nazwę SSH-1. W tej chwili prawie nigdy nie używany.
W 1996 roku ulepszonyWersja SSH-2. Jest niekompatybilny z SSH-1, jest bezpieczniejszy i ma rozszerzoną listę algorytmów szyfrowania. Teraz SSH jest rozumiane jako wersja SSH-2. Od 2006 roku protokół został uznany przez IETF za standard internetowy.
Istnieją dwie główne implementacje SSH.Jeden z nich jest zastrzeżony i jest rozwijany przez SSH Communications Security. Drugi to OpenSSH, stworzony pod kierownictwem Theo de Raadta jako darmowa alternatywa open source dla pierwszego. Jest najbardziej powszechny i jest dołączany do większości systemów uniksopodobnych.
Co to jest klient SSH i serwer SSH
Połączenie SSH jest realizowane przy użyciu dwóch głównych komponentów: klienta i serwera.
Krótko mówiąc, użytkownik za pośrednictwem klienta,który jest zainstalowany na komputerze lokalnym, uzyskuje dostęp do komputera zdalnego (serwera). Należy zaznaczyć, że klient może być zaimplementowany z powłoką graficzną (jako aplikacja desktopowa) oraz do pracy w terminalu (konsoli).
Serwer SSH nasłuchuje połączeń sieciowych od klientów iotrzymując żądanie połączenia, wykonuje niezbędne czynności związane z autoryzacją. Jeśli się powiedzie, uruchamia usługę zainstalowaną dla klienta zdalnego.
Bezpieczny dostęp jest zorganizowany za pomocąProcedury uwierzytelniania przy użyciu asymetrycznego szyfrowania klucza publicznego przy pierwszym połączeniu. Następnie stosowane jest szyfrowanie symetryczne.
Standard SSH obejmuje trzy protokoły:
- Protokół warstwy transportowej - zapewnia uwierzytelnianie, prywatność i integralność serwera. Zapewnia kompresję danych. Działa przez TCP / IP.
- Protokół uwierzytelniania - przeprowadza uwierzytelnianie klienta dla serwera. Działa na wierzchu warstwy protokołu transportowego.
- Protokół połączenia - reprezentuje zaszyfrowany kanał w postaci multipleksowanego kanału kilku logicznych używanych do różnych usług. Działa na kanale uwierzytelniania.
Zwiększenie bezpieczeństwa jest gwarantowane przez uwierzytelnianie klienta na serwerze, do którego uzyskuje dostęp klient ssh, oraz uwierzytelnianie serwera przez klienta. Obie strony są uwierzytelnione.
Klient wysyła żądanie przy pierwszym ustanowieniu bezpiecznego połączenia transportowego. Drugie żądanie jest wysyłane po zakończeniu uwierzytelniania klienta SSH.
Implementacja OpenSSH
OpenSSH to otwarta implementacja polecenia OpenBSD. Jest to najczęściej używana wersja ze względu na jej bezpłatną dystrybucję.
Pakiet OpenSSH zawiera zestaw takich narzędzi:
- SSHD jest po stronie serwera.
- SSH to strona klienta.
- SCP to narzędzie do bezpiecznego kopiowania plików.
- SSH-keygen - generuje klucze publiczne (RSA, DSA i inne) dla komputerów i użytkowników.
- SSH-keyscan - zbiera klucze publiczne w sieci.
- Agent SSH - przechowuje prywatne klucze RSA do późniejszej autoryzacji za pomocą kluczy publicznych.
- SSH-add - dodaje nowe klucze prywatne do agenta SSH.
- Serwer SFTP - serwer SFTP.
- SFTP to narzędzie do bezpiecznego kopiowania plików przez FTP.
OpenSSH jest dołączany po wyjęciu z pudełka dla większości systemów uniksopodobnych. Najpopularniejsze z nich to Linux, Open (Free, Net) BSD, Solaris, HP-UX, Irix, MacOS X i inne.
Trwają aktywne prace nad wdrożeniem OpenSSH dla Windows, które jest dostępne do pobrania pod adresem teren. Pozwala na stworzenie serwera SSH w systemach z rodziny Windows, ma klienta SSH do połączenia. OpenSSH dla Windows jest zawarty w CygWin.
Najpopularniejsze wśród użytkowników toDystrybucje oparte na jądrze Linuksa. W dalszej części wszystkie przykłady użycia SSH zostaną przyjęte w konfiguracji OpenSSH. Dla przejrzystości pracy w Linuksie klient SSH zostanie skonfigurowany dla Ubuntu, Windows i Mac OS X.
Instalowanie i konfigurowanie openssh-server
Istnieje wiele opcji konfiguracyjnychOpenSSH -server. Konfigurację klienta należy przeprowadzić w oparciu o konfigurację serwera. Ta sekcja zawiera przykład serwera SSH zainstalowanego na Ubuntu Server Edition. Poniższe opisy konfiguracji klienta będą dotyczyły konfiguracji tego serwera.
1. Istnieją dwa sposoby instalacji serwera OpenSSH:
1.1. Wybierz instalację pakietu OpenSSH -server natychmiast podczas wdrażania Ubuntu Server /
1.2. Pobierz i zainstaluj z repozytorium, uruchamiając polecenie:
2. Możesz wyświetlić domyślne wartości konfiguracyjne serwera SSHD w pliku / etc / ssh / sshd_config za pomocą polecenia:
3.Przed zmianą ustawień domyślnych należy utworzyć kopię zapasową pliku i zabezpieczyć go przed zapisem. Odbywa się to w przypadku konieczności przywrócenia wartości domyślnej w przypadku błędu.
4. Domyślne ustawienia to port TCP 22. Ze względów bezpieczeństwa zaleca się zastąpienie go niestandardową wartością, na przykład 5754. Dyrektywę Port można zmienić poleceniem:
5. Zapisz plik / etc / ssh / sshd_config i zrestartuj SSHD:
Serwer jest zainstalowany i skonfigurowany.Teraz nasłuchuje na porcie 5754. Domyślnie każdy użytkownik w systemie z prawami logowania może uzyskać do niego dostęp. Uwierzytelnianie odbywa się za pomocą hasła lub kluczy DSA, RSA, ed25519 itp.
Wieloplatformowy klient OpenSSH dla terminala. Klient SSH dla systemu Linux
Wcześniej mówiono, że najczęściej używanyimplementacją protokołu SSH jest OpenSSH, który jest domyślnie dostarczany z większością wersji dystrybucji Linuksa. W niektórych przypadkach OpenSSH można pobrać z repozytoriów dla danej dystrybucji.
W ramach pakietów zaimplementowany jest klient OpenSSH w formaciew postaci programu SSH, który jest uruchamiany poleceniem o tej samej nazwie. Klient jest konfigurowany i zarządzany przez terminal; nie ma interfejsu graficznego. Uważana jest za najprostszą i najwygodniejszą wersję.
Instalowanie i konfigurowanie klienta OpenSSH w systemie Ubuntu
Zdalna maszyna ma zainstalowany i skonfigurowany serwer OpenSSH. Wyzwaniem jest uzyskanie do niego dostępu z lokalnego komputera, na którym jest zainstalowany system Ubuntu.
1. W systemie Ubuntu pakiet dystrybucyjny klienta OpenSSH nie jest dodawany domyślnie, więc należy go zainstalować za pomocą polecenia:
2. Po zainstalowaniu programu jest wywoływany poleceniem SSH z terminala bez rootowania.
3. Jeśli używana jest autoryzacja za pomocą hasła:
1) nawiązanie połączenia za pomocą polecenia:
- nazwa użytkownika - nazwa konta na zdalnym komputerze,
- host to adres IP zdalnego serwera (lub domena, jeśli domena została delegowana na serwer);
2) po wpisaniu polecenia naciśnij Enter -zostaniesz poproszony o wprowadzenie hasła; wymagane jest wprowadzenie hasła do konta zdalnego komputera (należy zachować ostrożność, ponieważ hasło nie jest wyświetlane w żaden sposób ze względów bezpieczeństwa);
3) po wprowadzeniu prawidłowego hasła pojawia się okno terminala zdalnego serwera z powitaniem; teraz możesz wykonać niezbędne polecenia.
4. Jeśli wymagana jest autoryzacja za pomocą kluczy DSA:
1) w razie potrzeby możesz wygenerować klucze publiczne i prywatne SSH z klienta OpenSSH:
2) domyślnie klucz publiczny jest zapisywany w pliku /home/user/.ssh/id_dsa.pub, a klucz prywatny jest zapisywany w /home/user/.ssh/id_dsa;
3) wygenerowany klucz publiczny należy skopiować na zdalną maszynę i dodać do autoryzacji /home/user/.ssh/authorized_keys poleceniem:
Teraz użytkownik może uwierzytelnić się na serwerze SSH bez podawania hasła.
Instalowanie i konfigurowanie OpenSSH dla Cygwin Terminal w systemie Windows
Cygwin jest instalowany przez uruchomienie pliku Cygwin.exe, który jest pobierany z oficjalnej strony internetowej.
Cygwin to kompilacja wielu różnych pakietów. Do pracy ze zdalnym terminalem wymagany jest tylko OpenSSH. Możesz go znaleźć, wyszukując w samym Cygwin.
Po zainstalowaniu pakietu musisz uruchomić Cygwin Terminal i wprowadzić polecenie:
Następnie naciśnij Enter. Zostaniesz poproszony o podanie hasła. Po przejściu autoryzacji na terminalu zdalnego serwera pojawia się powitanie od użytkownika.
Składnia jest dokładnie taka sama, jak w kliencie OpenSSH zaimplementowanym dla systemu Linux.
Wieloplatformowy klient SSH z PuTTY GUI
Putty to graficzny klient SSH do zdalnej administracji, który obsługuje protokół SSH. Program jest open source i całkowicie darmowy.
Początkowo został wydany tylko dla systemu operacyjnego Windows, ale później klient został przeportowany na Linuksa, znajduje się w repozytoriach prawie wszystkich popularnych dystrybucji.
Aktywnie opracowany do działania w systemie Mac OS X.
Okno konfiguracji PuTTY wygląda tak samo we wszystkichsystem operacyjny. Jedyna różnica dotyczy metod instalacji. Dlatego najpierw zostaną przedstawione metody instalacji dla trzech systemów operacyjnych, a następnie opcje konfiguracyjne PuTTY.
Instalowanie PuTTY Linux Ubuntu
1. Możesz zainstalować PuTTY poleceniem:
2. Uruchomienie odbywa się za pomocą polecenia putty z terminala lub przez kliknięcie myszą w menu:
3. Otworzy się okno ustawień klienta, w którym należy zarejestrować parametry połączenia.
Instalowanie PuTTY dla Windows
Aby zainstalować, należy pobrać plik putty.exe i zapisać go w dogodnym miejscu, na przykład na pulpicie. Program uruchamiany jest dwoma kliknięciami lewym przyciskiem myszy.
PuTTY to klient SSH dla komputerów Mac. Instalowanie i uruchamianie wersji GUI
W chwili pisania tego tekstu PuTTY nie był odpowiednio przeportowany do pracy w systemie Mac OS X. Podczas kompilacji części odpowiedzialnej za interfejs graficzny pojawiły się problemy.
Aby zainstalować, należy wykonać pewne wstępne prace.
1. Zainstaluj Xcode.
Pakiet narzędzi i programów firmy Apple do tworzenia i tworzenia aplikacji dla systemu Mac OS X.
W systemie Mac OS X 10.7 Lion należy zainstalować „Narzędzia wiersza poleceń dla Xcode” z witryny Apple Developer.
Po instalacji musisz zaakceptować umowę licencyjną:
2. Zainstaluj Xquartz.
To jest implementacja serwera X.Org X Window System (X11) dla Mac OS X. Wymagane dla wersji GUI PuTTY napisanej w GTK +. Możesz zainstalować z oficjalnej strony internetowej. Po instalacji konieczne będzie ponowne zalogowanie.
3. Zainstaluj Homebrew.
Instalacja odbywa się za pomocą polecenia:
Następnie musisz sprawdzić poprawność instalacji za pomocą polecenia:
4. Instalacja Putty odbywa się za pomocą polecenia:
Proces może zająć ponad pół godziny, ponieważ zostanie zainstalowanych wiele zależności, takich jak Glib / GTK + / Pango / Cairo.
5. Utworzenie pliku startowego Putty.app.
Aplikacja Automator.app musi być uruchomiona.Wybierz "program" w typie dokumentu, wybierz "uruchom skrypt powłoki" w akcjach, wprowadź ścieżkę do pliku wykonywalnego "/ user / local / bin / putty" w polu wejściowym, zapisz jako "putty.app", określając format pliku „program” do katalogu „programy”. W razie potrzeby standardową ikonę można zastąpić.
Konfigurowanie klienta SSH PuTTY
Proces konfiguracji graficznego klienta SSH PuTTY wygląda tak samo we wszystkich systemach operacyjnych. Wygląd jest nieco inny w zależności od projektu środowiska pracy.
Aby połączyć się ze zdalną maszyną przez SSH, musisz uruchomić PuTTY. W wyświetlonym oknie programu musisz ustawić parametry:
Connection Type - typ połączenia - konfigurowany przez SSH.
Nazwa hosta (lub adres IP) - nazwa hosta lub adres IP - w tym miejscu wskazany jest adres IP zdalnego serwera, nazwa domeny lub adres internetowy. W przedstawionym przykładzie adres IP to 192.168.128.3
Port - port nasłuchiwania - na serwerze, który został podany jako przykład, skonfigurowany jest port 5754. Podajemy go.
W razie potrzeby możesz zapisać ustawienia dla tej sesji.
Po kliknięciu przycisku „Otwórz” pojawi się okno terminala, w którym należy wprowadzić nazwę konta zdalnego komputera i hasło.
Jeśli chcesz uwierzytelnić klienta za pomocą pary kluczy, będziesz potrzebować narzędzia puttygen.exe, które działa w systemie Windows. PuTTY-Gen generuje parę kluczy publiczny i prywatny.
Klucz publiczny należy dodać do serwera, jest generowany w standardzie SSH. Możesz dodać klucz w ten sam sposób, przez OpenSSH w terminalu lub za pomocą PuTTY, po przejściu przez pierwszą autoryzację logowania i hasła.
Klucz prywatny jest generowany w formacie.ppk i dodane do klienta. Po lewej stronie drzewa musisz znaleźć SSH, rozwinąć listę, znaleźć Auth iw tym parametrze, w polu „Plik kluczy prywatnych do uwierzytelnienia”, wybrać klucz.
Po tych manipulacjach użytkownik może uwierzytelnić się na serwerze bez podawania hasła.
W tej chwili PuTTY jest uważany za uniwersalnego klienta SSH z interfejsem graficznym. Zewnętrzni programiści Gao-Feng stworzyli klienta SSH dla Androida jako mobilną wersję PuTTY.
Najlepszy klient SSH
Nadal nie ma zgody co do tego, którego klienta SSH użyć. Administratorzy systemu wybierają narzędzia na podstawie własnych potrzeb.
Zwykle użytkownicy systemów * Unix mają tendencję doużywać standardowego SSH z pakietu OpenSSH. Ma przejrzystą, uniwersalną składnię i jest dostępny bezpośrednio z terminala. Aby pracować z dodatkowymi narzędziami, takimi jak Secure File Copy (SCP), nie trzeba instalować dodatkowych programów. Wszystko, czego potrzebujesz, jest zawarte w OpenSSH.
Fanów GUI, którzyzwykle działają w systemach operacyjnych Windows, użyj PuTTY. Uważany jest za najlepszego klienta SSH dla systemu Windows. Posiada cały niezbędny zestaw narzędzi do tunelowania, kopiowania plików itd., Nawet jeśli wymaga to pobrania dodatkowych modułów.