Jak w pełni wykorzystać OpenSsh

Jak w pełni wykorzystać OpenSsh

OpenSSH to łączność sieciowa i zdalne logowanie, które bezpiecznie szyfruje cały ruch, pierwotnie opracowany przez programistów OpenBSD do użytku w ich systemie operacyjnym. Biorąc pod uwagę główny koncentrację programistów OpenBSD na bezpieczeństwie, nie jest zaskoczeniem, że OpenSsh szybko stał się standardową implementacją zdalnego logowania dla wszystkich systemów operacyjnych Linux i UNIX. OpenSsh używa modelu serwera klienta z ssh polecenie zapewniające funkcjonalność klienta i Sshd Zapewnienie funkcjonalności serwera.

W tym samouczku się nauczysz:

  • Jak zainstalować OpenSsh
  • Jak zalogować się do zdalnej powłoki
  • Jak kopiować pliki między maszynami za pomocą SCP
  • Jak włączyć uwierzytelnianie oparte na kluczu i wyłączyć logowanie oparte na hasłach
  • Jak zapisać konfiguracje często dostępnych maszyn w celu łatwiejszego połączenia
  • Jak zamontować zdalny system plików w stosunku do protoku SSH
  • Jak korzystać z przekazywania/tunelowania portów
  • Aby uzyskać dostęp do maszyny za NAT/Firewall
  • Aby utworzyć serwer proxy Web
Jak w pełni wykorzystać OpenSsh - wskazówki i sztuczki

Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System Systemy oparte na debian, oparte na Red Hat i arche są wyraźnie omawiane, ale pakiet OpenSSH jest niezależny od dystrybucji, a wszystkie instrukcje powinny działać dla dowolnego rozkładu, który korzysta z systemu, ponieważ system init init.
Oprogramowanie OpenSsh
Inny Uprawnienia do modyfikowania plików konfiguracyjnych
Konwencje # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Instalowanie OpenSsh

Większość dystrybucji zapewni opcję instalacji OpenSSH podczas pierwszej instalacji, ale nadal można ją zainstalować ręcznie, jeśli ta opcja nie została wybrana. W systemach opartych na Debian i Red Hat musisz osobno zainstalować serwer i klient, podczas gdy w systemach opartych na łuku klient i serwer są instalowane jako pojedynczy pakiet (patrz przykład poniżej). Pamiętaj, że jeśli używasz zapory, pamiętaj o otwarciu portu 22 dla przychodzącego ruchu na dowolnym komputerze, którego chcesz użyć jako serwer.

W systemach opartych na debian

$ sudo apt-get instaluj openSsh-server $ sudo apt-get instaluj openSsh-client 


W systemach opartych na Red Hat (uwaga: w wersji 22 lub nowszej Fedora zastąp mniam DNF)

$ sudo yum instalacja openSsh-server $ sudo yum instalacja openSsh-client 

W systemie opartym na łuku

$ sudo pacman -s openssh 

Po zainstalowaniu serwera SSH niektóre dystrybucje domyślnie włączą usługę SSHD, a inne nie będą. W najnowszych wersjach powyższych rozkładów wprowadź następujące czynności, aby zapewnić, że demon SSH jest włączony i może być połączony przez klientów.

$ sudo systemctl start sshd $ sudo systemctl włącz Sshd 

To rozpocznie usługę teraz i po każdym kolejnym rozruchu.

Zaloguj się do zdalnej powłoki

Logowanie do zdalnej powłoki jest najbardziej podstawowym i powszechnym użyciem OpenSsh. Poniższe polecenie pozwoli na zalogowanie się z jednego komputera sieciowego do drugiego, zakładając, że oba mają zainstalowane otwarte SSH. Uwaga: Zastąp „Nazwa użytkownika” nazwa użytkownika użytkownika, którą chcesz zalogować jako. Jeśli podłączasz się do innego komputera w tej samej sieci, wówczas zastąp „host” adresem IP lub nazwą hosta tego komputera. Jeśli logujesz się na komputerze przez Internet, zastąp „host” adresem IP lub nazwą domeny tego komputera.

$ ssh użytkownik@host 

Domyślnie SSHD wymaga hasła użytkownika do uwierzytelnienia, więc wprowadź hasło użytkownika, a teraz jesteś zalogowany do tego urządzenia jako ten użytkownik. Jeśli użytkownik jest użytkownikiem root lub ma uprawnienia sudo, możesz teraz całkowicie administrować urządzeniem zdalnie. Zauważ, że jeśli łączysz się z serwerem, który korzysta z portu innego niż domyślny 22 (na przykład 10001), musisz określić numer portu, wstawiając „-p 10001” („The”-P„Musi być małymi literami, więcej na ten temat później) między SSH a resztą polecenia.

Kopiowanie plików między maszynami

Polecenie SCP może być używane do kopiowania plików na lub z jednego komputera i drugiego. Aby to zrobić, musisz najpierw podać ścieżkę pliku, którą chcesz skopiować, a następnie ścieżkę, w której chcesz skopiować plik.

Na przykład, aby skopiować plik Lista rzeczy do zrobienia.tekst od klienta ~/Dokumenty folder do maszyny zdalnej ~/Pobieranie Folder Wprowadź następujące.

$ scp ~/dokumenty/todolist.nazwa użytkownika txt@host: ~/pobieranie/ 

Podobnie możesz skopiować plik z serwera do klienta. Po prostu podaj ścieżkę pliku na serwerze, a następnie żądaną ścieżkę na komputerze klienckim. Na przykład możemy skopiować to samo Lista rzeczy do zrobienia.tekst że właśnie przesłaliśmy do /TMP katalog maszyny lokalnej poprzez wydanie następującego polecenia.

$ SCP Nazwa użytkownika@host: ~/pliki do pobrania/todolist.txt /tmp / 

Zauważ, że jeśli kopiujesz do/z serwera, który używa portu innego niż domyślny 22 (na przykład 10001), musisz określić numer portu, wstawiając „ -P 10001 „Między SCP a resztą polecenia. Zauważ też, że jest to stolica P W przeciwieństwie do małych liter P używane przez polecenie SSH. Proces kopiowania katalogów jest taki sam, z wyjątkiem tego, że musisz określić „-R„Flaga do rekurencyjnego skopiowania katalogu wraz ze wszystkimi jego podkładnikami i plikami. Poniższe polecenie skopiuje cały katalog dokumentów z lokalnego użytkownika do folderu pobierania użytkownika zdalnego użytkownika.

$ scp -r ~/dokumenty nazwa użytkownika@host: ~/pobieranie/ 

Jako alternatywę dla polecenia SCP możesz użyć polecenia SFTP do przesyłania plików między maszynami. Zachowuje się jak klasyczne polecenie FTP, ale w przeciwieństwie do FTP, jest w pełni szyfrowane.

Konfigurowanie uwierzytelniania opartego na kluczu

Jeśli używasz OpenSSH w swojej bezpiecznej sieci domowej, możesz być w porządku z uwierzytelnianiem hasła. Jeśli jednak używasz go przez Internet, zaleca się włączenie uwierzytelniania opartego na klucz. Może to być również przydatne, jeśli chcesz po prostu uniknąć konieczności wpisania hasła do zalogowania.

Uwierzytelnianie oparte na kluczach korzysta z kryptograficznej pary klucza prywatnego, który jest przechowywany tylko na lokalnym komputerze klienckim i kluczu publicznym przechowywanym na zdalnym serwerze.

Najpierw wygeneruj parę klucza prywatnego/publicznego na lokalnym komputerze klienckim.

$ ssh -keygen -t rsa 

Następnie prześlij tylko klucz publiczny do zdalnej maszyny

$ ssh-copy-id -i ~/.ssh/id_rsa.Pub Username@host 

Teraz zaloguj się do serwera zdalnego, a jeśli nie masz monitowania o hasło użytkownika, login oparty na kluczu działa i możesz wyłączyć logowanie oparte na hasłach.
Używanie ulubionego edytora tekstu otwórz /etc/ssh/sshd_config jako root lub z sudo

$ sudo vim/etc/ssh/sshd_config 


i dokonaj następujących zmian, zmieniając Tak Do NIE Dla tych pola i podnoszenie ich w razie potrzeby (usuń #, jeśli linia się od tego zaczyna).

ChallengerEsponseAuthentication Bez hasła Authentication Bez usespam nr 

Następnie ponownie załaduj usługę SSHD.

$ sudo systemCtl Reload SSH 

Zapisz konfiguracje często dostępnych maszyn, aby ułatwić połączenia

Przydatne może być zapisanie konfiguracji często dostępnych maszyn, abyś mógł łatwiej się z nimi połączyć; Zwłaszcza jeśli mają słuchanie SSHD na porcie bez domyślnego (nie 22). Aby to zrobić, dodajesz wpisy do swojego ~/.ssh/config plik.
Wpis dla urządzenia, z którym można by połączyć za pomocą następującego polecenia

$ ssh -p 1666 Bob@Remotemachine 

wygląda tak.

Host Remotemachine Użytkownik Bob HostName Remotemachine Port 1666 

Następnie możesz uzyskać dostęp do tego komputera za pomocą następującego polecenia w przyszłości.

$ SSH RETOTEMACHINE 

Montaż systemu plików z SSHFS

Chociaż nie jest to część apartamentu OpenSsh, SSHFS można zainstalować za pomocą menedżera pakietów, a następnie użyć do montażu zdalnych systemów plików przez sieć. Załóżmy, że chcesz uzyskać dostęp do katalogu domowego user1@maszynę1 w lokalnym systemie plików.

Utwórz katalog, w którym chcesz zamontować zdalny system plików.

$ mkdir sshmount 

Zamontuj system plików określającą zdalną ścieżkę i lokalną ścieżkę, w której chcesz ją zamontować.

$ sshfs user1@maszyna1:/home/user1 sshMount 

Aby zdemontować numer systemu plików

$ fusmount -u sshmount 

Lub

$ sudo umount sshmount 


Przekazywanie/tunelowanie portów

Przekazywanie portów, znane również jako tunelowanie, może być używane do dostarczania szyfrowania aplikacji i protokołów, których ruch sieciowy byłby wysłany w czystości. Następne dwa przykład pokazują dwa inne zastosowania przekierowania portów.

Dostęp do zdalnej skorupy na maszynie, która jest za NAT lub zaporą zapory

Co jeśli chcesz SSH przez Internet w maszynę, która jest za Nat lub zaporą zapory? W tym scenariuszu są 3 maszyny.

  1. Maszyna za NAT, którą chcesz zalogować, aby zdalnie zalogować się
  2. Serwer skierowany do Internetu, do którego masz dostęp SSH
  3. Maszyna w innej sieci, której chcesz użyć do zalogowania się do maszyny 1 przez Internet

Dla polecenia ssh -L Przełącz Połączenia do przekazywania do określonego portu lokalnego do określonego portu hosta. Podobnie -R Przełącz Połączenia do przekazywania do określonego zdalnego portu do określonego portu lokalnego.

Na maszynie 1 Wprowadź następujące polecenie.

User1@1 $ SSH -r 10125: LocalHost: 22 User2@2 

Na maszynie 3 Wprowadź następujące polecenia. Uwaga: Drugie polecenie powinno zostać otwarte w nowym oknie terminalu lub Tty.

User3@3 $ SSH -L 10001: LocalHost: 10125 User2@2 User3@3 $ SSH User1@LocalHost -p 10001 

Pierwsze polecenie będzie wyglądało tak, jakby zalogowało się do maszyny 2 normalnie, ale będzie również powiązać port 22 (usługa SSHD) z maszyny 1 do portu 10125 na maszynie 2, aby połączenia z portem 10125 na maszynie 2 były przekazywane do portu 22 na maszynie 1 na maszynie 1. Drugie polecenie będzie również wyglądało tak, jakby rejestrowało się do maszyny 2 normalnie, ale wiąże port 10001 z maszyny 3 do portu 10125 na maszynie 2, aby połączenia z portem 10001 na maszynie 3 były przekazywane do portu 10125 na maszynie 2, który jest następnie przekazywany do portu 22 na maszynie 1. Następnie wreszcie maszyna 3 była w stanie zalogować się do maszyny 1, łącząc się z portem 10001 na sobie, który przekazał przez stworzony przez nas tunel.

Używanie OpenSsh jako serwera serwisowego internetowego

Używając -D flaga możesz użyć swojego zdalnego serwera SSH jako proxy Socks. Może to być szczególnie przydatne do przeglądania stron internetowych, na przykład, jeśli jesteś w publicznym Wi -Fi i chcesz dodatkowej prywatności, lub jeśli jesteś w pracy/szkole/innej sieci, która może snopować ruch lub cenzurę.

Wystarczy wydać następujące polecenie, a będziesz mógł użyć portu 8888 Twój komputer lokalny jako proxy Socks, tak aby połączenia z portem 8888 zostaną bezpiecznie przekazane do zdalnego serwera i w pełni zaszyfrowane z wścibskich oczu w sieci lokalnej.

ssh -d 8888 nazwa użytkownika@host 
Konfigurowanie proxy skarpet w Firefox

Powiązane samouczki Linux:

  • Jak zapobiegać sprawdzaniu łączności NetworkManager
  • Linux: Ustaw ssh
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Jak skonfigurować serwer OpenVPN na Ubuntu 20.04
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Jak generować i zarządzać klawiszami SSH w Linux
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • Ubuntu 20.04 SERW SSH
  • Mastering Bash Script Loops