Podstawowe użycie i konfiguracja poleceń SSH w Linux
- 4375
- 818
- Tacjana Karpiński
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.
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.
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 hostaSSH 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 %1Uruchom 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.
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:
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.130Wyś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.130Wyłą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.130Zmień 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.
- « Włącz tryb debugowania w SSH, aby rozwiązywać problemy z łącznością
- Przykłady poleceń Linux RMDIR dla początkujących »