Как использовать команду SFTP для передачи файлов

Команда SFTP для Linux

SFTP (протокол передачи файлов SSH) — это защищенный файловый протокол, который используется для доступа, управления и передачи файлов по зашифрованному протоколу SSH.

По сравнению с традиционным протоколом FTP , SFTP предлагает все функциональные возможности FTP, но он более безопасен и прост в настройке.

В отличие от SCP , который поддерживает только передачу файлов, SFTP позволяет выполнять ряд операций с удаленными файлами и возобновлять передачу файлов.

В этом уроке мы покажем вам, как использовать команду sftp в Linux.

Прежде чем начать

Для передачи файлов через SFTP необходимо иметь разрешение на запись на удаленной системе.

При передаче больших файлов рекомендуется запускать команду sftp внутри сеанса screen или tmux .

Каталог, из которого вы запускаете команду sftp является локальным рабочим каталогом.

Не путайте SFTP с FTPS. Оба протокола служат одной и той же цели. Однако FTPS расшифровывается как FTP Secure и представляет собой расширение стандартного протокола FTP с поддержкой TLS.

Установление SFTP-соединения

SFTP работает по модели клиент-сервер. Он является подсистемой SSH и поддерживает все механизмы аутентификации SSH.

Чтобы открыть SFTP-соединение с удаленной системой, используйте команду sftp , за которой укажите имя пользователя удаленного сервера и IP-адрес или доменное имя:

 sftp remote_username@server_ip_or_hostname

Если вы подключаетесь к хосту, используя аутентификацию по паролю, вам будет предложено ввести пароль пользователя.

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

 Connected to remote_username@server_ip_or_hostname. sftp>

Если удаленный SSH-сервер не прослушивает порт по умолчанию 22 , используйте опцию -P для указания порта SFTP:

 sftp -P custom_port remote_username@server_ip_or_hostname

Команды SFTP

Большинство команд SFTP аналогичны или идентичны командам оболочки Linux.

Чтобы получить список всех доступных команд SFTP, введите help или ? .

 help

Это выведет длинный список всех доступных команд, включая краткое описание каждой команды:

 Available commands: bye Quit sftp cd path Change remote directory to 'path' ... ... version Show SFTP version !command Execute 'command' in local shell ! Escape to local shell ? Synonym for help

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

 pwd
 Remote working directory: /home/remote_username

Чтобы вывести список файлов и каталогов, используйте команду ls :

 ls

Чтобы перейти в другой каталог, используйте команду cd . Например, чтобы перейти в каталог /tmp , введите:

 cd /tmp

Приведенные выше команды используются для навигации и работы в удаленном месте.

Оболочка SFTP также предоставляет команды для локальной навигации, просмотра информации и управления файлами. Локальные команды начинаются с буквы l .

Например, чтобы распечатать локальный рабочий каталог, введите:

 cd lpwd
 Local working directory: /home/local_username

Передача файлов с помощью SFTP

SFTP позволяет безопасно передавать файлы между двумя машинами.

Если вы работаете на настольном компьютере, вы можете использовать графический SFTP-клиент, такой как WinSCP или FileZilla, для подключения к удаленному серверу и загрузки или выгрузки файлов.

Команда sftp полезна, когда вы работаете на сервере без графического интерфейса и хотите передать файлы или выполнить другие операции с удаленными файлами.

Загрузка файлов с помощью команды SFTP

Чтобы загрузить один файл с удаленного сервера, используйте команду get :

 get filename.zip

Вывод должен выглядеть примерно так:

 Fetching /home/remote_username/filename.zip to filename.zip /home/remote_username/filename.zip 100% 24MB 1.8MB/s 00:13

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

Если вы хотите сохранить загруженный файл под другим именем, укажите новое имя в качестве второго аргумента:

 get filename.zip local_filename.zip

Чтобы загрузить каталог из удаленной системы, используйте рекурсивную опцию -r :

 get -r remote_directory

Если передача файла завершилась неудачей или была прервана, вы можете возобновить ее с помощью команды reget .

Синтаксис reget такой же, как синтаксис get :

 reget filename.zip

Загрузка файлов с помощью команды SFTP

Чтобы загрузить файл с локального компьютера на удаленный SFTP-сервер, используйте команду put :

 put filename.zip

Вывод должен выглядеть примерно так:

 Uploading filename.zip to /home/remote_username/filename.zip filename.zip 100% 12MB 1.7MB/s 00:06

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

При работе с put вы можете использовать те же параметры, которые доступны для команды get .

Чтобы загрузить локальный каталог, введите:

 put -r locale_directory

Чтобы возобновить прерванную загрузку:

 reput filename.zip

Манипуляции с файлами с помощью SFTP

Обычно для выполнения задач на удалённом сервере необходимо подключиться к нему по SSH и работать через командную строку. Однако в некоторых ситуациях у пользователя может быть только доступ к удалённому серверу по протоколу SFTP.

SFTP позволяет выполнять некоторые базовые команды для работы с файлами. Ниже приведены примеры использования оболочки SFTP:

  • Получите информацию об использовании диска удаленной системы:

     df
     Size Used Avail (root) %Capacity 20616252 1548776 18002580 19067476 7%
  • Создайте новый каталог на удаленном сервере:

     mkdir directory_name
  • Переименовать файл на удаленном сервере:

     rename file_name new_file_name
  • Удалить файл на удаленном сервере:

     rm file_name
  • Удалить каталог на удаленном сервере:

     rmdir directory_name
  • Измените права доступа к файлу на удаленной системе:

     chmod 644 file_name
  • Изменить владельца файла на удаленной системе:

     chown user_id file_name

    Для команд chown и chgrp необходимо указать идентификатор пользователя.

  • Измените владельца группы удаленного файла с помощью:

     chgrp group_id file_name

Закончив работу, закройте соединение, введя команду bye или quit .

Заключение

В этом уроке мы показали, как использовать команду sftp для загрузки и выгрузки файлов на удаленный SFTP-сервер.

Вы также можете настроить аутентификацию по ключу SSH и подключаться к своим серверам Linux без ввода пароля. Если вы регулярно подключаетесь к одним и тем же системам, вы можете упростить рабочий процесс, определив все подключения в файле конфигурации SSH .

Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.

sftp ssh терминал

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *