Podstawowe użycie i konfiguracja poleceń SSH w Linux

Podstawowe użycie i konfiguracja poleceń SSH w Linux

Krótko: W tym przewodniku omówimy wspólne przypadki użycia SSH. Omówimy również powszechnie używane konfiguracje SSH, które można wykorzystać w codziennym życiu, aby zwiększyć Twoją wydajność.

Bezpieczna skorupa (Ssh) to szeroko przyjęty protokół sieciowy, który pozwala nam w bezpieczny sposób interakcja ze zdalnymi hostami. Zapewnia bezpieczeństwo poprzez szyfrowanie całej komunikacji między nimi.

Jak używać polecenia SSH w Linux

W tej sekcji omówimy niektóre popularne przypadki użycia Ssh protokół.

Podłącz się do zdalnego hosta Linux

Istnieją różne sposoby interakcji ze zdalnymi hostami Linux przy użyciu protokołów takich jak Telnet, ftp, Netcat itp. Nie są one jednak bezpieczne z powodu braku szyfrowania. Możemy użyć protokołu SSH, aby umożliwić bezpieczną komunikację między hostami.

Musimy użyć Ssh klient do interakcji ze zdalnym hostem. Istnieje mnóstwo klientów opartych na GUI i CLI dostępnych dla Linux. Jednak w tym przewodniku użyjemy narzędzia wiersza poleceń o nazwie ssh. Domyślnie, ssh Narzędzie jest dostępne w większości dystrybucji Linux.

Składnia polecenia SSH jest następująca:

$ ssh [opcje] [polecenia] [args] 

Tutaj kwadratowe nawiasy ([]) reprezentują opcjonalne argumenty, podczas gdy wsporniki kątowe () reprezentują obowiązkowe argumenty.

Podłączmy się do zdalnego hosta za pomocą ssh klient:

$ ssh -l root 192.168.19.130 

W tym przykładzie określiliśmy nazwę logowania za pomocą -L opcja i miejsce docelowe 192.168.19.130. Połączenie SSH zostaje ustanowione po wprowadzeniu poprawnego hasła. Teraz możemy wykonać polecenia na zdalnym hoście, podobnie jak system lokalny.

# nazwa hosta 

Aby zakończyć sesję, możemy użyć Wyjście polecenie lub Ctrl+d Kombinacja kluczowa.

SSH połącz się z zdalnym hostem Linux

Należy zauważyć, że musimy uwierzytelnić się ze zdalnym hostem dla każdej nowej sesji. Aby uniknąć wprowadzania haseł za każdym razem, możemy skonfigurować login bez hasła SSH.

Wykonaj polecenia na zdalnym hoście

W poprzedniej sekcji widzieliśmy, jak nawiązać połączenie ze zdalnym hostem, który jest odpowiedni tylko wtedy, gdy będziemy korzystać z hosta zdalnego przez dłuższy czas. Czasami musimy tylko wykonać jedno lub dwa polecenia na zdalnym hoście. W takich przypadkach możemy wykonać te polecenia bez tworzenia długoterminowej sesji.

Wykonajmy polecenie nazwy hosta na zdalnym hoście:

$ ssh -l root 192.168.19.130 nazwa hosta 

W podobny sposób możemy wykonać wiele poleceń na zdalnym komputerze Linux:

$ ssh -l root 192.168.19.130 'nazwa hosta; PWD ' 
SSH Uruchom polecenia w zdalnym Linuxie

Należy zauważyć, że polecenia muszą być zamknięte w cytatach i oddzielone półkolonem (;) postać. Jeśli chcesz uruchomić polecenia na wielu zdalnych hostach Linux, przeczytaj nasz artykuł - PSSH - Uruchom polecenia na wielu zdalnych hostach Linux.

Wykonaj skrypt na zdalnym hoście

Podobne do poleceń możemy również wykonać skrypt lokalny na zdalnym hoście. Zrozummy to przykładem.

Najpierw utwórz prosty skrypt powłoki na komputerze lokalnym z uprawnieniami wykonywalnymi:

skrypt $ cat.SH HostName PWD 

Teraz wykonajmy go na zdalnym hoście:

$ ssh [e -mail chroniony] „bash -s” < ./script.sh 

W tym przykładzie użyliśmy -S opcja bash do odczytania skryptu ze standardowego wejścia.

SSH Uruchom skrypt w zdalnym Linux

Skopiuj pliki między hostami

Bardzo często pracujemy z plikami i katalogami. Jednym z powszechnych operacji, które wykonują użytkownicy, jest kopiowanie katalogów i plików. Podobnie jak maszyny lokalne, możemy kopiować pliki i katalogi między hostami zdalnymi za pomocą polecenia SCP, które bezpiecznie kopiuje pliki za pomocą protokołu SSH.

Skopiujmy scenariusz.cii plik do /TMP Katalog zdalnego hosta:

Skrypt $ SCP.sh [chroniony e -mail]:/tmp 

Teraz sprawdź, czy plik został skopiowany:

$ ssh [e -mail chroniony] „ls /tmp /script.cii' 
SSH kopiuj pliki do zdalnego Linux

W podobny sposób możemy użyć polecenia SCP do skopiowania katalogów. Jednak musimy użyć -R opcja z poleceniem.

Włącz kompresję SSH

Ssh obsługuje kompresję danych za pomocą gzip Algorytm kompresji, który kompresuje wszystkie możliwe strumienie danych, takie jak stdin, stdout, stdderr i tak dalej. Ta opcja jest bardzo przydatna podczas korzystania z powolnych połączeń sieciowych.

Możemy włączyć kompresję na SSH za pomocą -C opcja:

$ ssh -c -l root 192.168.19.130 „nazwa hosta” 
SSH włącza kompresję

Włącz tryb werbose dla SSH

Użytkownicy Linux często muszą debugować sesje SSH, aby zbadać różne problemy związane z połączeniem SSH i konfiguracją. W takich przypadkach możemy włączyć tryb wetonowy, który drukuje dzienniki debugowania bieżącej sesji.

Włączmy tryb werbowy za pomocą -v opcja:

$ ssh -v -l root 192.168.19.130 nazwa hosta 

Oprócz tego możemy zwiększyć poziom gadatości za pomocą wielu -v opcje.

  • -v - ustawia poziom gadatości na 1 i zawiera szczegółowe informacje na temat działań po stronie klienta.
  • -vv - Ustawia poziom gadatości na 2 i zawiera szczegółowe informacje na temat działań klienta i serwera.
  • -VVV - Ustawia poziom gadatości na 3 i zawiera bardziej szczegółowe informacje na temat działań klienta i serwera.

Maksymalny poziom gadatości obsługiwany przez SSH wynosi 3. Zobaczmy to w akcji:

$ ssh -vvv -l root 192.168.19.130 nazwa hosta 
SSH ENBALE TRYB

W powyższym przykładzie, Debug1 reprezentuje komunikat debugowania włączony na poziomie gadatości 1. podobnie, Debug2 I Debug3 Reprezentuj wiadomości debugowania włączone odpowiednio przez poziomy gadatości 2 i 3.

Sekwencje ucieczki w SSH

Możemy użyć sekwencji ucieczki z Ssh Aby zarządzać sesjami terminali klienta. Omówmy powszechnie używane sekwencje ucieczki z odpowiednimi przypadkami użycia.

Zawieszenie sesji SSH

Czasami musimy wykonywać kilka działań na komputerze lokalnym bez zakończenia bieżącej sesji SSH. W takim scenariuszu możemy zawiesić bieżącą sesję za pomocą ~ + ctrl + z Kluczowa sekwencja.

Najpierw zaloguj się do zdalnego hosta i wykonaj Nazwa hosta Komenda:

$ ssh -l root 192.168.19.130 # nazwa hosta 

Następnie zawiesić bieżącą sesję pierwszego typu Tylde (~) charakter, a następnie naciśnij Ctrl + z Klucze. Należy zauważyć, że Tylde (~) znak nie będzie wyświetlany na stdout, dopóki nie naciśniemy Ctrl + z.

Teraz sprawdźmy, czy sesja została zawieszona:

$ Jobs 

Tutaj widzimy, że bieżąca sesja SSH działa w tle.

Wznów sesję ponownie za pomocą FG polecenie i wykonaj Nazwa hosta Komenda:

$ FG %1 
Uruchom sesję SSH w tle
Zakończyć zamrożoną sesję SSH

Jestem pewien, że musiałeś zobaczyć mrożone sesje SSH, które zdarza się, gdy sesja zostanie przerwana przez niestabilną sieć. Tutaj nie możemy przerwać sesji za pomocą Wyjście Komenda. Możemy jednak to zakończyć za pomocą "~ + ." Kluczowa sekwencja.

Najpierw zaloguj się do zdalnego hosta:

$ ssh -l root 192.168.19.130 

Teraz użyj "~ + ." Kombinacja kluczowa w celu zakończenia bieżącej sesji.

Zakończyć sesję SSH

W tym przykładzie możemy to zobaczyć Ssh pokazuje wiadomość - Połączenie z 192.168.19.130 zamkniętych.

Lista obsługiwana sekwencja ucieczki

Jedną interesującą rzeczą jest to, że istnieje sekwencja ucieczki, która wymienia wszystkie obsługiwane sekwencje ucieczki. Możemy użyć „~ + ?" Sekwencja ucieczki, aby wymienić obsługiwane sekwencje ucieczki:

Obsługiwane sekwencje ucieczki

Tutaj musimy nacisnąć klawisz Enter, aby wyjść z menu Pomoc.

Jak skonfigurować SSH w Linux

W tej sekcji omówimy konfigurację po stronie serwera, aby utwardzić serwer SSH. SSH Server przechowuje całą swoją konfigurację w /etc/ssh/sshd_config plik. Należy zauważyć, że dostęp do użytkownika root jest wymagany do aktualizacji konfiguracji SSH.

Wyświetl sztandar SSH

Jako najlepsza praktyka, zawsze powinniśmy wyświetlać baner przed nawiązaniem połączenia SSH. W niektórych przypadkach zniechęca nieautoryzowanych użytkowników od dostępu do zdalnych hostów. Zobaczmy, jak włączyć to ustawienie krok po kroku.

Najpierw utwórz plik tekstowy na zdalnym serwerze z komunikatem ostrzegawczym:

# vi /etc /baner.tekst 

Następnie dodaj następującą wiadomość banerową:

***************************************************** ******************* Ostrzeżenie !!! Próbujesz zalogować się do TechMint.serwer COM. Wszystkie działania na tym serwerze są monitorowane. Natychmiast zakończ sesję, jeśli nie jesteś autoryzowanym użytkownikiem. ***************************************************** ******************* 

Następnie otwórz /etc/ssh/sshd_config plik i określ plik za pomocą Transparent dyrektywa:

Sztandar /etc /baner.tekst 

Teraz uruchom ponownie Sshd obsłużyć i zakończyć sesję za pomocą Wyjście Komenda:

# Systemctl restart sshd # wyjście 

Na koniec zweryfikuj baner, logując się do zdalnego hosta:

$ ssh -l root 192.168.19.130 
Wyświetl sztandar SSH

Tutaj możemy poprawnie wyświetlić baner SSH sztandar SSH.

Wyłącz logowanie root SSH

Jak dotąd użyliśmy użytkownika root, aby uzyskać dostęp do zdalnego hosta. Jest to jednak sprzeczne z zasadą najmniejszego przywileju. W środowisku produkcyjnym dostęp użytkowników root jest zawsze ograniczony w celu poprawy bezpieczeństwa.

Możemy użyć Pertrootlogin Dyrektywa, aby wyłączyć login użytkownika root.

Najpierw otwórz /etc/ssh/sshd_config Plik i użyj opcji NIE z Pertrootlogin dyrektywa:

Pertrootlogin nr 

Teraz uruchom ponownie Sshd obsłużyć i zakończyć sesję za pomocą Wyjście Komenda:

# Systemctl restart sshd # wyjście 

Na koniec sprawdź to, tworząc nową sesję SSH:

$ ssh -l root 192.168.19.130 
Wyłącz logowanie root SSH

Tutaj możemy zauważyć, że nie możemy zalogować się do zdalnego hosta z użytkownikiem root. Aby umożliwić login użytkownika root, możemy użyć opcji Tak z tą samą dyrektywą.

Zmień domyślny port SSH

Domyślnie, Ssh używa portu TCP 22. Możemy jednak skonfigurować SSH, aby działał na innym porcie I.mi. 8088.

Najpierw otwórz /etc/ssh/sshd_config złożyć i użyj 8088 wartość z Port dyrektywa:

Port 8088 

Następnie ponownie uruchom usługę SSHD i zakończ sesję:

# Systemctl restart sshd # wyjście 

Zalogujmy się teraz do hosta zdalnego:

$ ssh -p 8088 -L root 192.168.19.130 
Zmień port SSH

W tym przykładzie użyliśmy -P opcja określająca numer portu.

W niektórych przypadkach musimy wykonać kilka innych kroków, aby umożliwić komunikację w porcie bez debalia. Takie jak identyfikacja dostępnych portów, aktualizacja reguł zapory, ustawienia Selinux itp.

W tym artykule omówiliśmy protokół SSH i jego wspólne przypadki użycia. Następnie omówiliśmy kilka typowych opcji. Na koniec omówiliśmy niektóre ustawienia, aby zabezpieczyć serwer SSH.

Czy znasz jakiekolwiek inne najlepsze użycie polecenia SSH w Linux? Daj nam znać swoje poglądy w komentarzach poniżej.