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

How to Use Linux SFTP Command to Transfer Files

30 Июня 2020 | Терминал

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

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

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
 

Когда вы вошли на удаленный сервер, текущим рабочим каталогом является домашний каталог удаленного пользователя. Вы можете проверить это, набрав:

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 .


    Комментарии

    Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Загрузка комментариев...