Как использовать команду SFTP для передачи файлов
SFTP (SSH File Transfer Protocol) — это безопасный файловый протокол, который используется для доступа, управления и передачи файлов через зашифрованный транспорт SSH.
По сравнению с традиционным протоколом FTP SFTP предлагает все функции FTP, но он более безопасен и проще в настройке.
В отличие от SCP , который поддерживает только передачу файлов, SFTP позволяет выполнять ряд операций с удаленными файлами и возобновлять передачу файлов.
В этом руководстве мы покажем вам, как использовать команду Linux sftp .
Подготовка
Чтобы иметь возможность передавать файлы через SFTP, вы должны иметь разрешение на запись в удаленной системе.
При передаче больших файлов рекомендуется запускать команду sftp внутри сеанса screen или tmux .
Каталог, из которого вы запускаете команду sftp является локальным рабочим каталогом.
Не путайте SFTP с FTPS. Оба протокола служат одной цели. Однако FTPS означает FTP Secure и является расширением стандартного протокола FTP с поддержкой TLS.
Установление SFTP-соединения
SFTP работает по модели клиент-сервер. Это подсистема SSH и поддерживает все механизмы аутентификации SSH.
Чтобы открыть SFTP-соединение с удаленной системой, используйте команду sftp за которой следует имя пользователя удаленного сервера и IP-адрес или имя домена:
Если вы подключаетесь к хосту с использованием аутентификации по паролю, вам будет предложено ввести пароль пользователя.
После подключения вам будет представлено приглашение sftp , и вы сможете начать взаимодействие с удаленным сервером:
Если удаленный SSH-сервер не прослушивает порт по умолчанию 22 , используйте параметр -P чтобы указать порт SFTP:
Команды SFTP
Большинство команд SFTP похожи или идентичны командам оболочки Linux.
Чтобы получить список всех доступных команд SFTP, введите 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
Навигация по SFTP
Когда вы вошли на удаленный сервер, ваш текущий рабочий каталог является домашним каталогом удаленного пользователя. Вы можете проверить это, набрав:
Remote working directory: /home/remote_username
Чтобы вывести список файлов и каталогов, используйте команду ls :
Чтобы перейти в другой каталог, используйте команду cd . Например, чтобы перейти в каталог /tmp , введите:
Вышеупомянутые команды используются для навигации и работы в удаленном месте.
Оболочка SFTP также предоставляет команды для локальной навигации, управления информацией и файлами. Локальные команды начинаются с буквы l .
Например, чтобы распечатать локальный рабочий каталог, вы должны ввести:
Local working directory: /home/local_username
Передача файлов по SFTP
SFTP позволяет безопасно передавать файлы между двумя машинами.
Если вы работаете на настольном компьютере, вы можете использовать SFTP-клиент с графическим интерфейсом, например WinSCP или FileZilla, для подключения к удаленному серверу и загрузки или выгрузки файлов.
Команда sftp полезна, когда вы работаете на сервере без графического интерфейса пользователя и хотите передавать файлы или выполнять другие операции с удаленными файлами.
Загрузка файлов с помощью команды SFTP
Чтобы загрузить один файл с удаленного сервера, используйте команду get :
Результат должен выглядеть примерно так:
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 :
Если передача файла не удалась или прервалась, вы можете возобновить ее с помощью команды reget .
Синтаксис reget такой же, как синтаксис get :
Загрузка файлов с помощью команды SFTP
Чтобы загрузить файл с локального компьютера на удаленный SFTP-сервер, используйте команду put :
Результат должен выглядеть примерно так:
Uploading filename.zip to /home/remote_username/filename.zip filename.zip 100% 12MB 1.7MB/s 00:06
Если файл, который вы хотите загрузить, не находится в вашем текущем рабочем каталоге, используйте абсолютный путь к файлу.
При работе с put вы можете использовать те же параметры, которые доступны с командой get .
Чтобы загрузить локальный каталог, введите:
Чтобы возобновить прерванную загрузку:
Манипуляции с файлами с помощью SFTP
Обычно для выполнения задач на удаленном сервере вы подключаетесь к нему через SSH и выполняете свою работу, используя терминал оболочки. Однако в некоторых ситуациях пользователь может иметь только SFTP-доступ к удаленному серверу.
SFTP позволяет выполнять некоторые основные команды для работы с файлами. Ниже приведены несколько примеров использования оболочки SFTP:
- Получите информацию об использовании диска удаленной системой:
Size Used Avail (root) %Capacity 20616252 1548776 18002580 19067476 7%
rename file_name new_file_name
Когда вы закончите свою работу, закройте соединение, набрав « bye или « quit .
Выводы
В этом руководстве мы показали вам, как использовать команду sftp для загрузки и выгрузки файлов на удаленный сервер SFTP.
Вы также можете настроить аутентификацию на основе ключа SSH и подключаться к своим серверам Linux без ввода пароля. Если вы регулярно подключаетесь к одним и тем же системам, вы можете упростить рабочий процесс, указав все свои подключения в файле конфигурации SSH .
Не стесняйтесь оставлять комментарии, если у вас есть вопросы или отзывы.