SFTP (SSH File Transfer Protocol) — это безопасный файловый протокол, который используется для доступа, управления и передачи файлов через зашифрованный транспорт SSH.
По сравнению с традиционным протоколом FTP SFTP предлагает все функции FTP, но он более безопасен и проще в настройке.
В отличие от SCP , который поддерживает только передачу файлов, SFTP позволяет выполнять ряд операций с удаленными файлами и возобновлять передачу файлов.
В этом руководстве мы покажем вам, как использовать команду Linux sftp
.
Содержание
Подготовка
Чтобы иметь возможность передавать файлы через SFTP, вы должны иметь разрешение на запись в удаленной системе.
При передаче больших файлов рекомендуется запускать команду sftp
внутри сеанса screen или tmux .
Каталог, из которого вы запускаете команду sftp
является локальным рабочим каталогом.
Установление 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:
-
Получите информацию об использовании диска удаленной системой:
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
-
Измените владельца группы удаленного файла с помощью:
chgrp group_id file_name
Когда вы закончите свою работу, закройте соединение, набрав « bye
или « quit
.
Выводы
В этом руководстве мы показали вам, как использовать команду sftp
для загрузки и выгрузки файлов на удаленный сервер SFTP.
Вы также можете настроить аутентификацию на основе ключа SSH и подключаться к своим серверам Linux без ввода пароля. Если вы регулярно подключаетесь к одним и тем же системам, вы можете упростить рабочий процесс, указав все свои подключения в файле конфигурации SSH .
Не стесняйтесь оставлять комментарии, если у вас есть вопросы или отзывы.