Как использовать команду FTP в Linux

Протокол передачи файлов старше, чем у большинства наших читателей, но он все еще силен. FTP не обладает безопасностью современного протокола, но вам все равно может понадобиться его использовать. Вот как это сделать.

Предупреждение: не используйте FTP через Интернет

Давайте проясним это с самого начала: протокол передачи файлов (FTP) восходит к началу 1970-х годов и был написан без какого-либо отношения к безопасности. Он ни для чего не использует шифрование. Учетные данные для входа, такие как ваше имя пользователя и пароль, а также данные, которые вы загружаете или выгружаете, передаются в виде открытого текста. Любой желающий может увидеть ваши секреты. Однако FTP все еще находит применение.

Если вы передаете файлы в своей сети, вы должны быть в безопасности — пока никто в сети не перехватывает пакеты и не перехватывает любые конфиденциальные документы, когда вы их передаете. Если ваши файлы не являются конфиденциальными или конфиденциальными, их можно переместить по внутренней сети с помощью FTP. В Linux есть стандартный ftp программа командной строки иметь дело именно с этим сценарием.

Но определенно не используйте команду ftp для доступа к внешним ресурсам в Интернете. Для этого используйте sftp программа командной строки, который использует безопасный протокол передачи файлов SSH. Мы представим обе эти программы в этом руководстве.

Чтобы прояснить, почему вы никогда не хотите использовать FTP через Интернет, взгляните на снимок экрана ниже. Он показывает пароль FTP в виде открытого текста. Любой в вашей сети или между вами и FTP-сервером в Интернете может легко увидеть, что пароль — «MySecretPassword».

Без шифрования злоумышленник также может изменять файлы, которые вы загружаете или выгружаете в пути.

Трассировка сетевых пакетов с открытым текстом пароля

Команда ftp

Предполагая, что у вас есть действующая учетная запись на FTP-сайте, вы можете подключиться к ней с помощью следующей команды. В этой статье заменяйте IP-адрес в командах IP-адресом FTP-сервера, к которому вы подключаетесь.

ftp  192.168.4.25

Предупреждение: вы должны использовать команду ftp только для подключения к серверам в доверенной локальной сети. Используйте команду sftp, описанную ниже, для передачи файлов через Интернет.

  Как создать и установить ключи SSH из оболочки Linux

команда ftp-соединения в окне терминала

FTP-сервер отвечает приветственным сообщением. Формулировка приветствия будет отличаться от сервера к серверу. Затем он запрашивает имя пользователя учетной записи, в которую вы входите.

Обратите внимание, что отображается IP-адрес сайта, к которому вы подключаетесь, за которым следует ваше имя пользователя Linux. Если имя вашей учетной записи на FTP-сервере совпадает с именем пользователя Linux, просто нажмите клавишу Enter. Это будет использовать ваше имя пользователя Linux в качестве имени учетной записи на FTP-сервере. Если ваше имя пользователя Linux и имя учетной записи FTP отличаются, введите имя пользователя учетной записи FTP и нажмите Enter.

Вход на FTP-сервер

Вам будет предложено ввести пароль для FTP-сайта. Введите свой пароль и нажмите Enter. Ваш пароль не отображается на экране. Если комбинация имени учетной записи пользователя FTP и пароля проверяется FTP-сервером, вы затем входите на FTP-сервер.

Вам будет предложено приглашение ftp>.

вошел в учетную запись ftp в окне терминала

Поиск и получение файлов

Во-первых, вы, вероятно, захотите получить список файлов на FTP-сервере. Это делает команда ls. Наш пользователь видит файл gc.c на FTP-сервере и хочет загрузить его на свой компьютер. Его компьютер — это «локальный компьютер» на языке FTP.

Команда для получения (или «получения») файла — это получить. Поэтому наш пользователь выдает команду get gc.c. Они вводят get, пробел и затем имя файла, который они хотят получить.

FTP-сервер отвечает, передавая файл на локальный компьютер и подтверждая, что передача произошла. Также отображается размер файла и время, необходимое для передачи.

ls
get gc.c

передача файлов ftp в окне терминала

Чтобы получить сразу несколько файлов, используйте команду mget (множественное получение). Команда mget попросит вас подтвердить, хотите ли вы загружать каждый файл по очереди. Ответьте, нажав «y», если да, и «n», если нет.

Это было бы утомительно для большого количества файлов. По этой причине коллекции связанных файлов обычно хранятся на сайтах ftp в виде отдельных файлов tar.gz или tar.bz2.

mget *.c

команда mget в окне терминала

Загрузка файлов на FTP-сервер

В зависимости от разрешений, предоставленных вашей учетной записи FTP, вы можете загружать (или «помещать») файлы на сервер. Чтобы загрузить файл, используйте команду put. В нашем примере пользователь загружает файл Songs.tar.gz на FTP-сервер.

put Songs.tar.gz

поместить команду в окно терминала

Как и следовало ожидать, есть команда для одновременного размещения нескольких файлов на FTP-сервере. Это называется mput (множественный ввод). Как и команда mget, mput будет запрашивать подтверждение «y» или «n» для загрузки каждого файла, один за другим.

  5 лучших приложений для терминалов с раскрывающимся списком для Linux

Тот же аргумент для помещения наборов файлов в архивы tar применяется для помещения файлов, как и для получения файлов. Наш пользователь загружает несколько файлов «.odt» с помощью следующей команды:

mput *.odt

команда mput в окне терминала

Создание и изменение каталогов

Если ваша учетная запись на ftp-сервере разрешает это, вы можете создавать каталоги. Команда для этого — mkdir. Для ясности: любой каталог, который вы создаете с помощью команды mkdir, будет создан на ftp-сервере, а не на вашем локальном компьютере.

Чтобы изменить каталоги на ftp-сервере, используйте команду cd. Когда вы используете команду cd, приглашение ftp> не изменится в соответствии с вашим новым текущим каталогом. Команда pwd (печать рабочего каталога) покажет вам ваш текущий каталог.

Наш ftp-пользователь создает каталог с именем music, переходит в этот новый каталог, подтверждает, где он находится, с помощью команды pwd, а затем загружает файл в этот каталог.

mkdir music
cd music
pwd
put songs.tar.gz

команды cd pwd и mkdir в окне терминала

Чтобы быстро перейти в родительский каталог текущего каталога, используйте команду cdup.

cdup

команда cdup в окне терминала

Доступ к локальному компьютеру

Чтобы изменить каталог на локальном компьютере, вы можете использовать команду lcd в приглашении ftp>. Однако легко потерять из виду, где вы находитесь в локальной файловой системе. Более удобный метод доступа к локальной файловой системе — использовать! команда.

! Команда открывает окно оболочки на локальном компьютере. В этой оболочке можно делать все, что можно в стандартном окне терминала. Когда вы вводите команду exit, вы возвращаетесь к приглашению ftp>.

Наш пользователь использовал! команда и вошла в окно оболочки на локальном компьютере. Они выполнили команду ls, чтобы увидеть, какие файлы находятся в этом каталоге, а затем набрали exit, чтобы вернуться к приглашению ftp>.

!
ls
exit

!  команда оболочки в окне терминала

Переименование файлов

Чтобы переименовать файлы на FTP-сервере, используйте команду rename. Здесь наш FTP-пользователь переименовывает файл, используя команду rename, а затем использует команду ls для вывода списка файлов в каталоге.

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

команда переименования в окне терминала

Удаление файлов

Для удаления файлов на FTP-сервере используйте команду удаления. Чтобы удалить сразу несколько файлов, используйте команду mdelete. Вам будет предложено указать «y» или «n» подтверждения для удаления каждого файла.

  4 приложения для редактирования видео для Windows, которые работают в Linux

Здесь наш FTP-пользователь перечислил файлы, чтобы увидеть их имена, а затем выбрал один для удаления. Затем они решают удалить их все.

ls
delete gc.o
mdelete *.o

Команды ls delete и mdelete в окне терминала

Использование команды sftp

Читатели, знакомые с системой IP-адресации, заметят, что адрес 192.168 FTP-сервера, использованный в приведенных выше примерах, является внутренним IP-адресом, также называемым частным IP-адресом. Как мы предупреждали в начале этой статьи, команду ftp следует использовать только во внутренних сетях.

Если вы хотите подключиться к удаленному или общедоступному FTP-серверу, используйте команду sftp. Наш пользователь собирается подключиться к учетной записи SFTP, называемой demo, на общедоступном FTP-сервере, расположенном по адресу test.trebex.net.

Когда они подключаются, им сообщают, что соединение установлено. Им также сообщают, что подлинность хоста не может быть проверена. Это нормально для первого подключения нового хоста. Они нажимают «y», чтобы принять соединение.

Поскольку имя учетной записи пользователя (демонстрация) было передано в командной строке, им не предлагается ввести имя учетной записи пользователя. У них запрашивается только пароль. Это вводится, проверяется и принимается, и они отображаются с приглашением sftp>.

sftp [email protected]

подключение к сайту sftp в окне терминала

Команды FTP, которые мы описали выше, будут работать точно так же в сеансе SFTP, за следующими исключениями.

Для удаления файла используйте rm (FTP использует delete)
Для удаления нескольких файлов используйте rm (FTP использует mdelete)
Для перехода в родительский каталог используйте cd .. (FTP использует cdup)

Наш пользователь использовал несколько команд в своем сеансе SFTP. У них есть команда ls для вывода списка файлов и cd для перехода в каталог pub. Они использовали pwd для печати рабочего каталога.

команды sftp в окне терминала

В мире Linux есть и другие варианты передачи файлов, в частности scp (защищенная копия), но здесь мы сосредоточились на FTP и SFTP. Эти две команды, используемые в соответствующих сценариях, будут хорошо служить вам и вашим потребностям в хранении и извлечении файлов.