Jak skonfigurować serwer SFTP w systemie Linux

How To Set Up An Sftp Server Linux Featured Image

Większość ludzi preferuje narzędzia, takie jak FileZilla, WinSCP lub inne programy FTP, gdy muszą przesyłać pliki do lub z serwerów Linux. SFTP to bezpieczna alternatywa dla oryginalnego protokołu FTP. Pełni głównie te same funkcje, co jego niezabezpieczona wersja, ale z dodatkową warstwą szyfrowania. Aby to osiągnąć, używa protokołu SSH, który zapewnia mu możliwości szyfrowania. Konfiguracja serwera SFTP w systemie Linux obejmuje kilka kroków, które pokazujemy tutaj.

Co to jest SFTP?

SFTP (Secure File Transfer Protocol) to protokół sieciowy do przesyłania plików z klienta na serwer. W przeciwieństwie do FTP (File Transfer Protocol), SFTP używa protokołu SSH (Secure Shell) do szyfrowania wysyłanych danych. Opracowali go informatycy Tatu Ylönen i Sami Lehtinen, którzy są również odpowiedzialni za rozwój protokołu SSH w latach 90. Jednak współczesną wersję opracowuje IETF (Internet Engineering Task Force).

Można go opisać jako protokół zdalnego systemu plików, chociaż jego nazwa sugeruje, że wykonuje tylko operacje przesyłania plików. Gdy plik jest wysyłany przez SFTP od klienta do serwera odbierającego, dane są szyfrowane przed wysłaniem do miejsca docelowego. Jeśli przesyłane dane zostaną przechwycone przez „pośrednika”, ta osoba trzecia nie może łatwo ich odszyfrować.

Instalowanie SSH i serwera OpenSSH

Proces konfiguracji serwera SFTP rozpoczynamy od zainstalowania SSH i serwera OpenSSH.

Większość instalacji Linuksa ma już domyślnie zainstalowane SSH, ale jeśli Twój system go nie ma, możesz go zainstalować za pomocą zaawansowanego narzędzia do pakowania. apt Komenda:

Po zainstalowaniu SSH możesz sprawdzić jego wersję, uruchamiając ssh polecenie z -V flaga:

Sprawdzenie wersji Ssh

Możesz zainstalować OpenSSH Server na systemach Debian i Ubuntu, na przykład używając apt Komenda:

Możesz zrobić to samo w Arch Linux za pomocą pacman Komenda:

Tworzenie użytkowników, grup i katalogów dla SFTP

Powszechnie zaleca się, aby różne usługi w systemie Linux korzystały z własnych użytkowników, grup i katalogów.

Zacznij od utworzenia grupy dla użytkowników SFTP. Osiąga się to za pomocą groupadd Komenda:

Możesz utworzyć użytkownika i dodać go do utworzonej grupy za pomocą useradd dowództwo i jego -g flaga, która służy do określenia grupy, do której będzie należeć użytkownik:

Po utworzeniu użytkownika przypisz mu hasło za pomocą passwd Komenda:

Zmiana hasła użytkownika sftp

Utwórz domyślny katalog dla nowo utworzonego użytkownika:

Użyj chown Polecenie nadania katalogowi niezbędnych uprawnień:

Konfiguracja serwera SSH

Następnym krokiem w konfiguracji serwera SFTP jest konfiguracja serwera SSH, którego będziesz używać.

Czytać  Jak naprawić uszkodzony dysk USB w systemie Linux

Edytuj plik „sshd_config” znajdujący się w „/etc/ssh/”, aby użytkownik używał powłoki SFTP podczas łączenia się z serwerem zamiast powłoki SSH.

Możesz łatwo edytować plik za pomocą powszechnie używanego edytora Nano, który domyślnie znajduje się w wielu instalacjach systemu Linux:

Znajdź dół pliku i dodaj następujące elementy:

Nano Editor Edytuj ustawienia Sshd

Uruchom ponownie usługę SSH:

(Opcjonalnie) Zmień port SFTP

Jeśli chcesz zmienić port używany przez serwer SFTP z domyślnej wartości 22 na wybraną opcję, będziesz musiał ponownie edytować plik „sshd_config”.

Ponownie edytuj plik za pomocą edytora Nano:

Poszukaj linii w pliku z domyślną wartością portu 22 zakomentowaną:

Możesz usunąć krzyżyk (#) używany do zakomentowania wiersza i dodać wybraną wartość portu. W moim przypadku zmieniam wartość na 1111:

Teraz po prostu zapisz plik

Nano Editor Edytuj numer portu konfiguracji Sshd

i zrestartuj serwer:

Logowanie i korzystanie z serwera

Po zainstalowaniu i skonfigurowaniu serwera jest on gotowy do użycia. Możesz łatwo przesyłać i pobierać pliki, wszystkie z zaszyfrowaną sesją zapewnianą przez SSH.

Przed zalogowaniem warto zapoznać się z dołączoną instrukcją:

instrukcja ftp

Zaloguj się do serwera, podając nazwę użytkownika i IP serwera lub nazwę hosta w następującym formacie:

Dodatkowo możesz określić port używany przez serwer SFTP (domyślnie 22) za pomocą -P flaga:

Po zalogowaniu wita Cię powłoka SFTP.

Zobacz instrukcję pisania help.

Polecenie pomocy Sftp 1

Pobieranie plików

Aby pobrać plik:

Przykład:

Spowoduje to pobranie do bieżącego katalogu, w którym znajdował się lokalnie przed zalogowaniem się na serwerze. Aby pobrać do określonego katalogu lokalnego:

Aby skopiować katalogi, musisz dodać -r parametr, co oznacza rekurencyjny, do polecenia.

sftp-copy-directory

Pamiętaj, aby dodać nazwę nowego katalogu, który chcesz utworzyć lokalnie, na przykład „/home/username/Desktop/bin” w tym przypadku. Jeśli użyjesz get -r /bin /home/username/Desktop, pliki zostaną skopiowane bezpośrednio na pulpit. Zauważ, że kopiowane są pliki, a nie sam katalog.

Czytać  Jak wydrukować plik JSON w Pythonie

Prześlij pliki

Przesyłanie plików lub katalogów odbywa się na tych samych zasadach. Jedynym wyjątkiem jest to, że ścieżki są odwrócone, co oznacza, że ​​najpierw należy określić plik/katalog lokalny, a następnie ścieżkę zdalną.

Aby rozpocząć, prześlij pliki na serwer za pomocą put Komenda:

Podczas ładowania katalogów (rekursywnie) pamiętaj, że obowiązuje ta sama zasada z poprzedniej sekcji: tak naprawdę kopiowane są pliki w katalogu, a nie sam katalog. Podaj nową nazwę katalogu, do którego chcesz skopiować te pliki.

Tworzy to nowy katalog o nazwie „bin” po stronie zdalnej.

Wznów transfery i użyj ścieżek zawierających spacje

Gdy przesyłasz duży plik, który zostaje przerwany, możesz kontynuować, zastępując powyższe polecenie poleceniem reput Y reget. Tylko upewnij się, że korzystasz z tych samych tras, których używałeś ostatnio, aby źródło i miejsce docelowe dokładnie pasowały.

Aby wznowić transfery katalogów, po prostu dodaj -r parametr:

Jeśli ścieżka do pliku zawiera spacje, umieść ją w cudzysłowie:

Inne zastosowania

Możesz wyświetlić listę plików i katalogów za pomocą ls Komenda:

Uprawnienia do plików można również zmienić za pomocą chmod Komenda:

Możesz także utworzyć nowy katalog za pomocą polecenia mkdir:

Częste pytania

1. Czy muszę zainstalować klienta SFTP?

W większości przypadków nie, ponieważ większość systemów Linux ma domyślnie instalowanego klienta SFTP opartego na terminalu.

2. Czy mogę korzystać z uwierzytelniania klucza publicznego?

Tak, możesz użyć uwierzytelniania klucza publicznego zamiast hasła jako metody uwierzytelniania. Konfiguracja jest dość prosta i zapewnia dodatkowe bezpieczeństwo dla twojego serwera.

3. Czy mogę jednocześnie hostować serwer SSH?

Tak. Musisz jednak upewnić się, że Twój serwer SFTP nie używa tego samego portu, co serwer SSH.

Czy ten artykuł jest przydatny?