Android

Polecenie Ssh

Как настроить доступ к сайту по SSH и работать из командной строки

Как настроить доступ к сайту по SSH и работать из командной строки

Spisu treści:

Anonim

Secure Shell (SSH) to kryptograficzny protokół sieciowy używany do szyfrowanego połączenia między klientem a serwerem. Klient ssh tworzy bezpieczne połączenie z serwerem SSH na zdalnym komputerze. Zaszyfrowanego połączenia można użyć do wykonania poleceń na serwerze, tunelowania X11, przekierowania portów i innych.

Istnieje wiele klientów SSH dostępnych zarówno bezpłatnie, jak i komercyjnie, przy czym najczęściej stosowanym klientem jest OpenSSH. Jest dostępny na wszystkich głównych platformach, w tym Linux, OpenBSD, Windows, macOS i innych.

, wyjaśnimy, jak używać klienta wiersza polecenia OpenSSH ( ssh ) do logowania się na zdalnym komputerze i uruchamiania poleceń lub wykonywania innych operacji.

Instalowanie klienta OpenSSH

Program klienta OpenSSH nazywa się ssh i można go wywoływać z terminala. Pakiet klienta OpenSSH udostępnia także inne narzędzia SSH, takie jak scp i sftp które są instalowane wraz z poleceniem ssh .

Instalowanie klienta OpenSSH w systemie Linux

Klient OpenSSH jest domyślnie instalowany w większości dystrybucji Linuksa. Jeśli twój system nie ma zainstalowanego klienta ssh, możesz go zainstalować za pomocą menedżera pakietów swojej dystrybucji.

Instalowanie OpenSSH na Ubuntu i Debianie

sudo apt update sudo apt install openssh-client

Instalowanie OpenSSH na CentOS i Fedorze

sudo dnf install openssh-clients

Instalowanie klienta OpenSSH w systemie Windows 10

Większość użytkowników Windows używa Putty do łączenia się ze zdalnym komputerem przez SSH. Jednak najnowsze wersje systemu Windows 10 zawierają klienta i serwer OpenSSH. Oba pakiety można zainstalować za pomocą GUI lub PowerShell.

Aby znaleźć dokładną nazwę pakietu OpenSSH, wpisz następujące polecenie:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Polecenie powinno zwrócić coś takiego:

Name: OpenSSH.Client~~~~0.0.1.0 State: NotPresent Name: OpenSSH.Server~~~~0.0.1.0 State: NotPresent

Gdy poznasz nazwę pakietu, zainstaluj go, uruchamiając:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Po sukcesie wynik będzie wyglądał mniej więcej tak:

Path: Online: True RestartNeeded: False

Instalowanie klienta OpenSSH na macOS

System macOS jest dostarczany z domyślnie zainstalowanym klientem OpenSSH.

Jak korzystać z polecenia ssh

Aby móc zalogować się do zdalnego komputera za pośrednictwem SSH, muszą zostać spełnione następujące wymagania:

  • Serwer SSH musi działać na komputerze zdalnym. Port SSH musi być otwarty w zaporze komputera zdalnego. Musisz znać nazwę użytkownika i hasło do konta zdalnego. Konto musi mieć odpowiednie uprawnienia do zdalnego logowania.

Podstawowa składnia polecenia ssh jest następująca:

ssh:HOST

Aby użyć polecenia ssh otwórz terminal lub PowerShell i wpisz ssh a następnie zdalną nazwę hosta:

ssh ssh.linuxize.com

Gdy po raz pierwszy połączysz się ze zdalnym komputerem za pośrednictwem SSH, zobaczysz komunikat jak poniżej.

The authenticity of host 'ssh.linuxize.com (192.168.121.111)' can't be established. ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY. Are you sure you want to continue connecting (yes/no)?

Każdy host ma unikalny odcisk palca, który jest przechowywany w ~/.ssh/known_hosts .

Wpisz „ yes aby zapisać zdalny odcisk palca, a pojawi się monit o podanie hasła.

Warning: Permanently added 'ssh.linuxize.com' (ECDSA) to the list of known hosts. [email protected]'s password:

Po wprowadzeniu hasła nastąpi zalogowanie do zdalnego komputera.

Jeśli nazwa użytkownika nie zostanie podana, polecenie ssh używa bieżącej nazwy logowania do systemu.

Aby zalogować się jako inny użytkownik, określ nazwę użytkownika i host w następującym formacie:

ssh username@hostname

Nazwę użytkownika można również podać za pomocą opcji -l :

ssh -l username hostname

Domyślnie, gdy nie podano portu, klient SSH będzie próbował połączyć się ze zdalnym serwerem na porcie 22. Na niektórych serwerach administratorzy zmieniają domyślny port SSH, aby dodać dodatkową warstwę bezpieczeństwa do serwera, zmniejszając ryzyko zautomatyzowane ataki.

Aby połączyć się na porcie innym niż domyślny, użyj opcji -p , aby określić port:

ssh -p 5522 username@hostname

ssh -v username@hostname

Aby zwiększyć poziom gadatliwości, użyj -vv lub -vv .

Komenda ssh akceptuje wiele opcji.

Aby uzyskać pełną listę wszystkich opcji, przeczytaj stronę man ssh wpisując man ssh w swoim terminalu.

Plik konfiguracyjny SSH

Klient OpenSSH odczytuje opcje ustawione w pliku konfiguracyjnym dla użytkownika ( ~/.ssh/config ). W tym pliku możesz przechowywać różne opcje SSH dla każdego zdalnego komputera, z którym się łączysz.

Przykładowa konfiguracja SSH jest pokazana poniżej:

Host dev HostName dev.linuxize.com User mike Port 4422

Gdy wywołujesz klienta ssh, wpisując ssh dev polecenie odczyta plik ~/.ssh/config i użyje szczegółów połączenia określonych dla hosta dev. W tym przykładzie ssh dev jest równoważny z następującym:

ssh -p 4422 [email protected]

Aby uzyskać więcej informacji, zapoznaj się z artykułem na temat pliku konfiguracyjnego SSH.

Uwierzytelnianie za pomocą klucza publicznego

Protokół SSH obsługuje różne mechanizmy uwierzytelniania.

Mechanizm uwierzytelniania oparty na kluczu publicznym umożliwia logowanie się do zdalnego serwera bez konieczności wpisywania hasła.

Ta metoda polega na wygenerowaniu pary kluczy kryptograficznych używanych do uwierzytelniania. Klucz prywatny jest przechowywany na urządzeniu klienckim, a klucz publiczny jest przesyłany do każdego zdalnego serwera, na którym chcesz się zalogować. Serwer zdalny musi być skonfigurowany do akceptowania uwierzytelnienia klucza.

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Zostaniesz poproszony o wpisanie bezpiecznego hasła. To, czy chcesz użyć hasła, zależy od Ciebie.

Po uzyskaniu pary kluczy skopiuj klucz publiczny na zdalny serwer:

ssh-copy-id username@hostname

Wprowadź hasło użytkownika zdalnego, a klucz publiczny zostanie dołączony do pliku kluczy użytkownika authorized_keys .

Po przesłaniu klucza możesz zalogować się na serwerze zdalnym bez monitowania o hasło.

Ustawiając uwierzytelnianie oparte na kluczach, można uprościć proces logowania i zwiększyć ogólne bezpieczeństwo serwera.

Przekazywanie portów

Tunelowanie SSH lub przekierowywanie portów SSH to metoda tworzenia szyfrowanego połączenia SSH między klientem a maszyną serwerową, za pośrednictwem której można przekazywać porty usług.

Przekazywanie SSH jest przydatne do przesyłania danych sieciowych usług wykorzystujących niezaszyfrowany protokół, takich jak VNC lub FTP, uzyskiwania dostępu do treści ograniczonych geograficznie lub omijania pośrednich zapór ogniowych. Zasadniczo możesz przekazać dowolny port TCP i tunelować ruch przez bezpieczne połączenie SSH.

Istnieją trzy typy przekierowania portów SSH:

Lokalne przekierowanie portów

Lokalne przekierowanie portów umożliwia przekazanie połączenia z hosta klienta do hosta serwera SSH, a następnie do docelowego portu hosta.

Aby utworzyć przekierowanie portu lokalnego, przekaż opcję -L do klienta ssh :

ssh -L LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f username@hostname

Opcja -f informuje komendę ssh aby działała w tle, a opcja -N nie wykonywała komendy zdalnej.

Zdalne przekierowanie portów

Zdalne przekierowanie portów jest przeciwieństwem lokalnego przekierowania portów. Przesyła port z hosta serwera do hosta klienta, a następnie do docelowego portu hosta.

Opcja -L mówi ssh aby utworzyła zdalne przekierowanie portów:

ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT -N -f username@hostname

Dynamiczne przekierowywanie portów

Dynamiczne przekierowanie portów tworzy serwer proxy SOCKS, który umożliwia komunikację przez szereg portów.

Aby utworzyć dynamiczne przekierowanie portów (SOCKS), przekaż opcję -D klientowi ssh:

ssh -D LOCAL_PORT -N -f username@hostname

Aby uzyskać bardziej szczegółowe informacje i instrukcje krok po kroku, zapoznaj się z artykułem Jak skonfigurować tunelowanie SSH (przekierowanie portów).

Wniosek

Aby połączyć się ze zdalnym serwerem za pośrednictwem SSH, użyj polecenia ssh a następnie zdalnej nazwy użytkownika i nazwy hosta ( ssh username@hostname ).

Znajomość korzystania z polecenia ssh jest niezbędna do zarządzania zdalnym serwerem.

terminal ssh