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

12 set 2022 3 min di lettura
Как использовать команду SFTP для передачи файлов в Linux
Indice dei contenuti

Введение

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

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

В отличие от команды scp command, которая разрешает только передачу файлов, команда sftp позволяет выполнять различные удаленные операции с файлами и возобновлять передачу файлов.

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

Предпосылки

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

При передаче больших файлов рекомендуется запускать команду sftp в сеансе screen или 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-сервер.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.