Ten samouczek wyjaśnia, jak połączyć i przesyłać pliki za pomocą protokołu SFTP w Linux, a także zabezpieczenie poprzez wdrożenie środków bezpieczeństwa.
sftp Polecenie jest jednym z najbardziej przydatnych narzędzi dla każdego użytkownika sieci, w tym użytkowników krajowych. To polecenie można również zaimplementować w systemach Windows, co czyni je atrakcyjnym dla każdego typu sieci.
Jest to jedno z głównych narzędzi wiersza poleceń do bezpiecznego udostępniania plików między komputerami. Dodatkowo, aby pobierać i przesyłać pliki i katalogi, użytkownik może zdalnie zmieniać uprawnienia, usunąć i zmienić nazwę plików i więcej.
SFTP to polecenie, które zdecydowanie poprawi wrażenia sieciowe z wiersza poleceń.
Po przeczytaniu tego artykułu i zastosowaniu przykładów (można je również odtworzyć w maszynie wirtualnej), czytnik będzie wiedział, jak skonfigurować systemy Linux do przesyłania plików z poleceniem SFTP, zarówno w trybie interaktywnym, jak i wierszu poleceń.
Treść jest ważna dla wszystkich dystrybucji Linux i zawiera prawdziwe zrzuty ekranu scenariuszy, co ułatwia wszystkim czytelnikom zrozumienie, w jaki sposób polecenia są stosowane niezależnie od poprzedniego poziomu wiedzy.
Krótkie wprowadzenie do sftp
Wcześniej FTP (protokół przeniesienia plików) był jedyną metodą przesyłania plików między klientami a serwerami lub między dwoma urządzeniami sieciowymi.
Użytkownicy używani do przesyłania wszystkich plików do pobrania z serwerów FTP z uprawnieniami do odczytu i zapisu w dozwolonych katalogach.
Ale protokół FTP doznał luk na wysokim ryzyku i został zastąpiony nowszymi i bezpieczniejszymi protokołami. Dwa powszechnie znane przykłady to SCP (protokół Secure Copy) i SFTP (protokół bezpiecznego przeniesienia pliku). SFTP jest jedną z najpopularniejszych zamienników protokołu FTP.
Podobnie jak FTP, SFTP może być używane za pomocą interaktywnego trybu tekstowego lub wykonując pojedyncze polecenia. Ten samouczek wyjaśnia obie techniki.
Poprzednie wymagania dotyczące korzystania z SFTP
sftp Protokół wymaga ssh (Bezpieczna powłoka) do zainstalowania i uruchamiania na serwerze, który chcesz pobrać pliki lub przesyłać pliki do plików.
Jeśli Twój serwer ma już uruchomiony SSH, możesz przejść do następnej sekcji SFTP.
W dystrybucjach Linux opartych na Debian SSH można zainstalować za pomocą trafny Menedżer pakietów, jak pokazano na zrzucie ekranu poniżej.
sudo apt instal ssh
W rozkładach Linux opartych na Redhat SSH można zainstalować, wykonując następujące polecenie:
DNF Instaluj OpenSsh-Server
Po zainstalowaniu na serwerze, z którym chcesz się połączyć, uruchom usługę z Systemctl polecenie, jak pokazano poniżej (dystrybucje oparte na debian).
sudo systemctl start ssh
Aby uruchomić usługę SSH w dystrybucjach opartych na Redhat, uruchom:
sudo systemctl start sshd
Jak używać sftp w trybie interaktywnym
Ta sekcja obejmuje sftp Zastosowanie trybu interaktywnego.
Jedyne polecenie, które można wykonać, aby uzyskać dostęp do sftp serwer przed uzyskaniem sftp monit polecenia to żądanie połączenia, które ma podobną składnię do ssh i SCP.
Poniższy przykład opisuje poprawną składnię, gdzie <Użytkownik> Musi zostać zastąpiony istniejącym użytkownikiem na serwerze i <IP serwera> z hostem serwera lub adresem IP.
sftp@
Na zrzucie ekranu poniżej lokalny użytkownik Linux-Hint3 łączy się jako zdalny użytkownik Linuxhint do serwera z adresem IP 192.168.0.103.
sftp [email protected]
Po raz pierwszy użytkownik połączy się z serwerem, zostanie poproszony o potwierdzenie połączenia. Użytkownik musi wpisać „Tak", naciskać WCHODZIĆ i wypełnij hasło.
Po połączeniu użytkownika serwer zwróci sftp> monit polecenia, w którym użytkownik może wykonać sftp polecenia.
sftp Tryb interaktywny pozwala użytkownikom interakcję zarówno z systemami lokalnymi, jak i zdalnymi.
Normalne polecenia Linux Wpływ na serwer. Polecenia zaczynające się na „L”Są wykonywane w systemie lokalnym.
Na przykład, jeśli użytkownik wykonuje PWD polecenie, pokaże zdalnie bieżący katalog roboczy. Ale jeśli użytkownik uruchomi LPWD, pokaże lokalny aktualny katalog.
Domyślnie lokalny katalog zdalny jest zdalnym katalogiem domowym użytkownika, z wyjątkiem niektórych przypadków, takich jak poniższy przykład, w którym zdalny użytkownik nie ma katalogu domowego.
Na zrzucie ekranu poniżej, PWD Polecenie jest wykonywane w celu wyświetlania bieżącego katalogu roboczego zdalnego.
PWD
Następnie, LPWD jest wykonywany w celu pokazania lokalnego aktualnego katalogu roboczego.
LPWD
Jak widać na powyższym zrzucie ekranu, zdalny bieżący katalog roboczy jest katalogiem głównym (ponieważ Linuxhint4 Użytkownik zdalnego użytkownika nie ma katalogu domowego), a lokalny katalog roboczy to lokalny dom.
Jeśli użytkownik uruchomi LS (Lista) polecenie wyświetli zdalne pliki i katalogi w bieżącym katalogu roboczym.
LS
Wykonując LLS (Lista lokalna), polecenie wyświetli pliki i katalogi w lokalnym bieżącym katalogu roboczym.
Z płyta CD (Zmień Directory) Polecenie, użytkownik może przemieszczać się między zdalnymi katalogami. Z LCD (Lokalna zmiana katalogu) Komenda użytkownik może przemieszczać się między lokalnymi katalogami, jak pokazano na poniższym rysunku.
Składnia do pobrania pliku z serwera jest następująca:
Dostawać
Lub
Dostawać
W poniższym przykładzie użytkownik pobiera nazwany plik plik 10 a potem biegnie LLS (Lokalna lista) Potwierdzenie, że plik został poprawnie pobrany.
Uzyskaj plik 10
Aby pobrać katalogi, składnia jest prawie taka sama, z wyjątkiem -R flaga, jak pokazano poniżej.
Zdobądź -r
Lub
Zdobądź -r
W poniższym przykładzie użytkownik pobiera nazwany katalog Directory1.
Get -r Directory1
Aby przesłać pliki, składnia jest następująca:
umieścić
W praktycznym przykładzie poniżej użytkownik przesyła plik o nazwie <plik>
Aby przesłać katalogi, po prostu dodaj -R flaga.
Put -r
Lub
Put -r
Użytkownicy mogą również usuwać pliki zdalnie za pomocą tych samych poleceń Linux. Na przykład, aby usunąć plik, po prostu uruchom:
Rm
Aby usunąć katalogi, dodaj -R flaga, jak pokazano poniżej.
Rm -r
df -h Komenda może być używana do wyświetlania całkowitej przestrzeni serwera, używanej i dostępnej przestrzeni.
df -h
Użytkownicy mogą również zmienić uprawnienia plików i katalogu za pomocą chmod polecenie, jak pokazano w poniższym przykładzie.
CHMOD +/-
Aby wyjść z przebiegu trybu interaktywnego Wyjście.
Wyjście
Inny sposób na wyjście sftp Sesja jest do widzenia Komenda.
Do widzenia
Za pomocą sftp Z pojedynczymi poleceniami
Dodatkowo, w trybie interaktywnym, SFTP może być używany z pojedynczymi poleceniami. Ta sekcja obejmuje sposób pobierania i przesyłania plików bez poprzedniego połączenia z trybem interaktywnym.
Składnia do pobierania plików jest następująca:
sftp@ :
W poniższym przykładzie użytkownik loguje się jako Linuxhint5 użytkownik i pobiera cele.tekst zdalny plik do lokalnego katalogu reprezentowanego przez okres.
sftp [email protected]: Cele.tekst .
W praktycznym przykładzie poniżej użytkownik pobiera nazwany plik coś 2.tekst Znajduje się w pilocie testDir/ subkredytowanie do lokalnego Pulpit/ Podkazkodmienia.
sftp [email protected]: TestDir/coś 2.txt ~/Desktop
Jak pokazano w poniższym przykładzie, dodając -R Flaga, użytkownik może pobierać katalogi rekurencyjnie. W poniższym przykładzie użytkownik pobiera testDir/ Directory do lokalnego Pulpit/ Directory.
sftp -r [email protected]: TestDir/ ~/ Desktop
Aby przesłać pliki, wykonując jedno polecenie za pomocą SFTP, zastosuj składnię poniżej.
sftp@ : <<< $'put '
W poniższym przykładzie lokalny Plik2 jest przesłany do testDir/ informator.
sftp [email protected]: TestDir/ <<< $'put file2'
Aby przesłać katalog, dodaj -R Opcja używa następującej składni
sftp -r@ : <<< $'put '
W poniższym przykładzie, Pulpit/ Lokalny katalog jest przesyłany do pilota perl5/ informator.
sftp -r [email protected]: Perl5/ <<< $'put Desktop'
Zwiększenie bezpieczeństwa SFTP o kluczowe uwierzytelnianie
Domyślnie połączenia SFTP są bezpieczne i chronione przez protokół SSH.
Ale jednym z ryzyka jest domyślna metoda logowania hasła w wyniku słabości hasła, która obejmuje kanały wymiany haseł lub hasła, procesy. W którym hasła mogą zostać wyciekone na przykład z atakiem MIM (Man w środku), a następnie udanym opisem.
Jeśli serwer nie jest odpowiednio skonfigurowany, logowanie hasła może narazić system na ataki brutalne.
Aby temu zapobiec, dobrą praktyką dla małych i średnich sieci jest wdrożenie uwierzytelniania klucza SSH i wyłączenie logowania hasła.
Wdrożenie uwierzytelniania klucza SSH i wyłączenie logowania hasła
sftp Bezpieczeństwo jest przyznawane przez protokół SSH, którego plik konfiguracyjny jest /etc/ssh/sshd_config, Użytkownicy plików muszą edytować, aby włączyć uwierzytelnianie klucza i wyłączyć logowanie hasła wśród większej liczby opcji, aby wzmocnić bezpieczeństwo.
Na serwerze zezwalającym na połączenia przychodzące, edytuj /etc/ssh/sshd_config plik z uprawnieniami za pomocą zwykłego edytora tekstu, takiego jak Nano Lub vi.
sudo nano/etc/ssh/sshd_config
Aby włączyć uwierzytelnianie klucza, na komputerze serwerowym, otwórz /etc/ssh/sshd_config Plik z uprawnieniami i znajdź linię zawierającą Pubkeyauthentication nr. Wymień to Pubkeyauthentication Tak (Zastąp "NIE" z "Tak”).
Potwierdź także Pertrootlogin nr Aby wyłączyć login root.
źródło Użytkownik jest obecny we wszystkich systemach opartych na UNIX, w tym Linux. To zła decyzja, aby umożliwić zalogowanie się z nazwą użytkownika z przywilejami znanymi przez wszystkich.
Nie edytuj jeszcze opcji, aby wyłączyć login hasło, ponieważ proces udostępniania klucza wymaga uwierzytelniania hasła, zanim system będzie w stanie uwierzytelnić się za pomocą klawiszy.
Wyjdź z zmianę plik konfiguracyjnych i uruchom ponownie usługę SSH.
Dystrybucje Linux oparte na Debian:
sudo systemctl restart ssh
Rozkłady Linux oparte na Redhat:
sudo systemctl restart ssh
Po stronie klienta, żądając nadchodzących połączeń, generuj parę kluczy, wykonując ssh-keygen Komenda.
Proces będzie żądał potwierdzenia katalogu klawisza, naciśnij WCHODZIĆ opuścić domyślny katalog lokalny (~/.SSH/ID_RSA) lub odpowiednik w rozkładu Linuksa. Proces zaoferuje włączenie hasła, które należy być wymagane podczas logowania. Dodając hasło, bezpieczeństwo można zwiększyć. Zaleca się wpisać jeden i nacisnąć WCHODZIĆ. Jeśli nie chcesz dodawać pensji, po prostu naciśnij WCHODZIĆ bez pisania.
ssh-keygen
Teraz klient musi udostępnić klucz z serwerem z poleceniem ssh-copy-id za pomocą składni następującego przykładu.
SSH-COPY-ID [email protected]
Po udostępnieniu klucza przetestuj metodę uwierzytelniania klucza, łącząc się z serwerem.
Jeśli uwierzytelnianie się powiedzie, użytkownik zaloguje się bez hasła. Jeśli użytkownik określa hasło, będzie ono żądane zamiast hasła, jak w poniższym przykładzie.
sftp @@
Po sprawdzeniu uwierzytelniania kluczowego jest wysoce zalecane, aby wyłączyć logowanie hasła.
Po stronie serwera, edytuj plik /etc/ssh/sshd/config Ponownie z edytorem tekstu, takim jak Nano Lub vi.
sudo nano/etc/ssh/sshd/config
Przewiń w dół i wymień linię PAssWordAuthentication Tak z Hasło Automatyka nr.
Uruchom ponownie usługę SSH.
sudo systemctl restart sshd
Rozkłady Linux oparte na Redhat:
sudo systemctl restart ssh
Teraz bezpieczeństwo uwierzytelniania jest odpowiednio zwiększone.
Wniosek
SFTP jest bardzo przydatnym narzędziem do udostępniania plików między urządzeniami i oferuje dwa proste tryby. Protokół SFTP można zainstalować w każdym systemie operacyjnym, oferując bezpieczeństwo, niezawodność i prędkość. Alternatywnie SCP Polecenie oferuje również niezawodność, szybkość i bezpieczeństwo oraz działa za pośrednictwem protokołu SSH. To drugie polecenie zostało również głęboko wyjaśnione przy podpowiedzi Linux (link został podany we wprowadzaniu tego dokumentu).