
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
Навигация с помощью SFTP
После входа на удалённый сервер вашим текущим рабочим каталогом является домашний каталог удалённого пользователя. Вы можете проверить это, введя:
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:
-
Получите информацию об использовании диска удаленной системы:
dfSize 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 .
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.
Связанные руководства