Jak korzystać z polecenia FTP w systemie Linux

Protokół transferu plików jest starszy niż większość naszych czytelników, ale nadal działa. FTP nie ma bezpieczeństwa współczesnego protokołu, ale i tak może być konieczne jego użycie. Oto jak to zrobić.

Ostrzeżenie: nie używaj protokołu FTP przez Internet

Wyjaśnijmy to od samego początku: protokół przesyłania plików (FTP) sięga wczesnych lat 70. XX wieku i został napisany bez uwzględnienia bezpieczeństwa. Do niczego nie używa szyfrowania. Dane logowania, takie jak nazwa użytkownika i hasło, a także dane, które pobierasz lub przesyłasz, są przesyłane w postaci zwykłego tekstu. Każdy po drodze może zobaczyć Twoje sekrety. Jednak FTP nadal ma swoje zastosowania.

Jeśli przesyłasz pliki w swojej sieci, powinieneś być bezpieczny – pod warunkiem, że nikt w sieci nie przechwytuje pakietów ani nie podsłuchuje żadnych poufnych dokumentów podczas ich przesyłania. Jeśli Twoje pliki nie są w żaden sposób poufne lub wrażliwe, przenoszenie ich w sieci wewnętrznej za pomocą protokołu FTP powinno wystarczyć. Linux ma standardowe ftp program wiersza poleceń poradzić sobie właśnie z tym scenariuszem.

Ale zdecydowanie nie używaj polecenia ftp do uzyskiwania dostępu do zewnętrznych zasobów w Internecie. W tym celu użyj sftp program wiersza poleceń, który używa bezpiecznego protokołu transferu plików SSH. W tym samouczku przedstawimy oba te programy.

Aby wyjaśnić, dlaczego nigdy nie chcesz używać protokołu FTP przez Internet, spójrz na poniższy zrzut ekranu. Pokazuje hasło FTP w postaci zwykłego tekstu. Każdy w Twojej sieci lub między Tobą a serwerem FTP w Internecie może łatwo sprawdzić, czy hasło to „MySecretPassword”.

Bez szyfrowania złośliwy aktor mógłby również modyfikować pliki, które pobierasz lub przesyłasz podczas przesyłania.

Śledzenie pakietów sieciowych z hasłem w postaci zwykłego tekstu

Polecenie ftp

Zakładając, że masz ważne konto w witrynie FTP, możesz się z nim połączyć za pomocą następującego polecenia. W tym artykule zastępuj adres IP w poleceniach adresem IP serwera FTP, z którym się łączysz.

ftp  192.168.4.25

Ostrzeżenie: polecenia ftp należy używać wyłącznie do łączenia się z serwerami w zaufanej sieci lokalnej. Użyj opisanego poniżej polecenia sftp do przesyłania plików przez Internet.

polecenie połączenia ftp w oknie terminala

Serwer FTP odpowiada wiadomością powitalną. Sformułowanie powitania różni się w zależności od serwera. Następnie prosi o nazwę użytkownika konta, na które się logujesz.

Zwróć uwagę, że wyświetlany jest adres IP witryny, z którą się łączysz, a po nim nazwa użytkownika systemu Linux. Jeśli nazwa twojego konta na serwerze FTP jest taka sama jak nazwa użytkownika Linuksa, po prostu naciśnij klawisz Enter. Spowoduje to użycie nazwy użytkownika Linuksa jako nazwy konta na serwerze FTP. Jeśli nazwa użytkownika systemu Linux i nazwa konta FTP są różne, wpisz nazwę użytkownika konta FTP, a następnie naciśnij klawisz Enter.

Logowanie do serwera FTP

Zostaniesz poproszony o podanie hasła do witryny FTP. Wpisz swoje hasło i naciśnij Enter. Twoje hasło nie jest wyświetlane na ekranie. Jeśli kombinacja nazwy konta użytkownika FTP i hasła zostanie zweryfikowana przez serwer FTP, zostaniesz zalogowany do serwera FTP.

Zostanie wyświetlony znak zachęty ftp>.

zalogowany na koncie ftp w oknie terminala

Rozglądanie się i odzyskiwanie plików

Po pierwsze, prawdopodobnie będziesz chciał uzyskać listę plików na serwerze FTP. Właśnie to robi polecenie ls. Nasz użytkownik widzi plik gc.c na serwerze FTP i chce go pobrać na swój komputer. Jego komputer jest „komputerem lokalnym” w żargonie FTP.

Poleceniem pobrania (lub „pobrania”) pliku jest get. Dlatego nasz użytkownik wydaje polecenie get gc.c. Wpisują get, spację, a następnie nazwę pliku, który chcą pobrać.

Serwer FTP odpowiada, przesyłając plik na komputer lokalny i potwierdzając, że transfer miał miejsce. Wyświetlany jest również rozmiar pliku i czas potrzebny na przesłanie.

ls
get gc.c

transfer plików ftp w oknie terminala

Aby pobrać wiele plików na raz, użyj polecenia mget (multiple get). Polecenie mget poprosi Cię o potwierdzenie, czy chcesz pobrać każdy plik po kolei. Odpowiedz, naciskając „y” na tak i „n” na nie.

Byłoby to uciążliwe w przypadku dużej liczby plików. Z tego powodu kolekcje powiązanych plików są zwykle przechowywane na stronach ftp jako pojedyncze pliki tar.gz lub tar.bz2.

mget *.c

mget w oknie terminala

Przesyłanie plików na serwer FTP

W zależności od uprawnień, które zostały przyznane Twojemu kontu FTP, możesz przesyłać (lub „umieszczać”) pliki na serwerze. Aby przesłać plik, użyj polecenia put. W naszym przykładzie użytkownik przesyła plik o nazwie Songs.tar.gz na serwer FTP.

put Songs.tar.gz

umieść polecenie w oknie terminala

Jak zapewne się spodziewasz, istnieje polecenie umieszczenia wielu plików jednocześnie na serwerze FTP. Nazywa się to mput (umieszczenie wielokrotne). Tak jak polecenie mget, mput zapyta o potwierdzenie „y” lub „n” dla załadowania każdego pliku, jeden po drugim.

Ten sam argument dotyczący umieszczania zestawów plików w archiwach tar dotyczy wysyłania plików, tak jak w przypadku pobierania plików. Nasz użytkownik przesyła wiele plików „.odt” za pomocą następującego polecenia:

mput *.odt

polecenie mput w oknie terminala

Tworzenie i zmiana katalogów

Jeśli twoje konto użytkownika na serwerze ftp na to pozwala, możesz być w stanie tworzyć katalogi. Polecenie do tego to mkdir. Aby było jasne, każdy katalog utworzony za pomocą polecenia mkdir zostanie utworzony na serwerze ftp, a nie na komputerze lokalnym.

Aby zmienić katalogi na serwerze ftp, użyj polecenia cd. Gdy używasz polecenia cd, znak zachęty ftp> nie zmieni się, odzwierciedlając nowy bieżący katalog. Polecenie pwd (drukuj katalog roboczy) pokaże twój bieżący katalog.

Nasz użytkownik ftp tworzy katalog o nazwie music, przechodzi do tego nowego katalogu, potwierdza, gdzie się znajduje, używając polecenia pwd, a następnie przesyła plik do tego katalogu.

mkdir music
cd music
pwd
put songs.tar.gz

polecenia cd pwd i mkdir w oknie terminala

Aby szybko przenieść się do katalogu nadrzędnego bieżącego katalogu, użyj polecenia cdup.

cdup

polecenie cdup w oknie terminala

Dostęp do komputera lokalnego

Aby zmienić katalog na komputerze lokalnym, możesz użyć polecenia lcd w wierszu polecenia ftp>. Łatwo jest jednak stracić orientację, gdzie się znajdujesz w lokalnym systemie plików. Bardziej wygodną metodą uzyskiwania dostępu do lokalnego systemu plików jest użycie! Komenda.

The! polecenie otwiera okno powłoki na komputerze lokalnym. W tej powłoce możesz zrobić wszystko, co możesz w standardowym oknie terminala. Kiedy wpiszesz exit, nastąpi powrót do znaku zachęty ftp>.

Nasz użytkownik skorzystał z! polecenie i wszedł do okna powłoki na komputerze lokalnym. Wydali polecenie ls, aby zobaczyć, jakie pliki znajdują się w tym katalogu, a następnie wpisali exit, aby powrócić do zachęty ftp>.

!
ls
exit

!  polecenie powłoki w oknie terminala

Zmiana nazwy plików

Aby zmienić nazwy plików na serwerze FTP, użyj polecenia rename. Tutaj nasz użytkownik FTP zmienia nazwę pliku za pomocą rename, a następnie używa polecenia ls, aby wyświetlić listę plików w katalogu.

rename songs.tar.gz rock_songs.tar.gz
ls

Zmień nazwę polecenia w oknie terminala

Usuwanie plików

Aby usunąć pliki na serwerze FTP, użyj polecenia delete. Aby usunąć kilka plików jednocześnie, użyj polecenia mdelete. Zostaniesz poproszony o podanie potwierdzenia „y” lub „n” w celu usunięcia każdego pliku.

Tutaj nasz użytkownik FTP wyświetlił pliki, aby zobaczyć ich nazwy, a następnie wybrał jeden do usunięcia. Następnie decydują się usunąć je wszystkie.

ls
delete gc.o
mdelete *.o

ls delete i mdelete w oknie terminala

Korzystanie z polecenia sftp

Czytelnicy zaznajomieni z systemem adresowania IP zauważyli, że adres 192.168 serwera FTP użyty w powyższych przykładach jest wewnętrznym adresem IP, zwanym także prywatnym adresem IP. Jak ostrzegaliśmy na początku tego artykułu, polecenie ftp powinno być używane tylko w sieciach wewnętrznych.

Jeśli chcesz połączyć się ze zdalnym lub publicznym serwerem FTP, użyj polecenia sftp. Nasz użytkownik połączy się z kontem SFTP zwanym demo na publicznie dostępnym serwerze FTP znajdującym się pod adresem test.trebex.net.

Kiedy się łączą, są informowani, że połączenie zostało nawiązane. Zostają również poinformowani, że nie można zweryfikować autentyczności hosta. Jest to normalne w przypadku pierwszego połączenia z nowym hostem. Naciskają „y”, aby zaakceptować połączenie.

Ponieważ nazwa konta użytkownika (demo) została przekazana w wierszu poleceń, nie są wyświetlane monity o podanie nazwy konta użytkownika. Są proszeni tylko o podanie hasła. Jest to wprowadzane, weryfikowane i akceptowane, a następnie są przedstawiane za pomocą zachęty sftp>.

sftp [email protected]

łączenie się z witryną sftp w oknie terminala

Polecenia FTP, które opisaliśmy powyżej, będą działać tak samo w sesji SFTP, z następującymi wyjątkami.

Aby usunąć plik, użyj rm (FTP używa funkcji usuwania)
Aby usunąć wiele plików, użyj rm (FTP używa mdelete)
Aby przejść do katalogu nadrzędnego, użyj polecenia cd .. (FTP używa polecenia cdup)

Nasz użytkownik użył kilku poleceń w swojej sesji SFTP. Użyli ls, aby wyświetlić listę plików i cd, aby przejść do katalogu pub. Użyli pwd do wydrukowania katalogu roboczego.

sftp w oknie terminala

Istnieją inne opcje przesyłania plików w świecie Linuksa, w szczególności scp (bezpieczna kopia), ale skupiliśmy się tutaj na protokołach FTP i SFTP. Używane w odpowiednich scenariuszach te dwa polecenia będą dobrze służyć Tobie i Twoim potrzebom w zakresie przechowywania i pobierania plików.