Как использовать команду SFTP для передачи файлов Linux
Как использовать команду SFTP для передачи файлов Linux
How to Use Linux SFTP Command to Transfer Files
В этом руководстве мы покажем Вам, как использовать команду Linux sftp .

SFTP (SSH File Transfer Protocol) - это защищенный файловый протокол, используемый для доступа, управления и передачи файлов по зашифрованному транспортному протоколу SSH.
По сравнению с традиционным протоколом FTP , SFTP предлагает все функции FTP, и его проще настраивать.
В отличие от того scp command
, который разрешает только передачу файлов, sftp
команда позволяет выполнять ряд операций с удаленными файлами и возобновлять передачу файлов.
Прежде чем вы начнете
Чтобы иметь возможность передавать и управлять файлами через SFTP, вы должны иметь разрешение на запись в удаленной системе.
При передаче больших файлов рекомендуется запускать команду sftp внутри сеанса экрана или tmux .
Каталог, из которого вы запускаете sftp
команду, является локальным рабочим каталогом.
Установление SFTP-соединения
SFTP работает по модели клиент-сервер. Это подсистема SSH и поддерживает все механизмы аутентификации SSH.
Хотя традиционная аутентификация по паролю настроена по умолчанию и более проста в использовании, если вы регулярно подключаетесь к своему серверу через SSH / SFTP, рекомендуется создать ключи SSH и настроить логин SFTP без пароля .
Чтобы открыть SFTP-соединение с удаленной системой, используйте sftp
команду, за которой следует имя пользователя удаленного сервера и IP-адрес или имя домена:
sftp remote_username@server_ip_or_hostname
Если вы подключаетесь к хосту с использованием аутентификации по паролю, вам будет предложено ввести пароль пользователя.
После подключения вам будет предложено sftp
приглашение и вы сможете начать взаимодействие с удаленным компьютером:
Connected to remote_username@server_ip_or_hostname.
sftp>
Если удаленный сервер SSH не прослушивает порт по умолчанию 22, используйте -oPort
параметр, чтобы указать альтернативный порт:
sftp -oPort=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
После входа на удаленный сервер текущим рабочим каталогом является домашний каталог удаленного пользователя.
При загрузке файлов с помощью 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
Если вы хотите сохранить загруженный файл под другим именем, укажите новое имя в качестве второго аргумента:
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 .