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

SFTP (протокол безопасной передачи файлов) включен вместе с SSH как безопасный способ передачи файлов между удаленными системами. Он также позволяет пользователям выполнять основные административные задачи на удаленных серверах, такие как управление файлами и каталогами и установка прав доступа к файлам.

В этом руководстве мы покажем вам, как использовать SFTP для передачи файлов между локальной и удаленной системой с помощью интерфейса терминала.

  • Доступ к локальной системе и удаленному серверу, подключенным с помощью пары открытых ключей SSH.
  • Работающее подключение к Интернету.
  • Доступ к окну терминала.

Как подключиться с помощью SFTP

SFTP устанавливает безопасное соединение между системами с помощью сетевого протокола SSH. Это позволяет вам подключаться к любой системе, у которой есть копия вашего публичного SSH-ключа.

Для подключения к другой системе с помощью SFTP используется тот же синтаксис команд, что и для подключения с использованием SSH. Команда требует, чтобы вы указали имя пользователя и удаленное имя хоста или IP-адрес для системы, к которой вы хотите получить доступ:

sftp [username]@[remote hostname or IP address]

В приведенном ниже примере мы подключаемся к системе с IP-адресом 192.168.100.5, используя имя пользователя phoenixnap:

sftp phoenixnap@192.168.100.5

Подключение к удаленному серверу через SFTP

Чтобы завершить текущее соединение, используйте:

exit

Как передавать файлы с помощью SFTP

Использование SFTP позволяет передавать файлы с удаленного сервера в локальную систему и наоборот.

Перенос удаленных файлов в локальную систему

Используйте getкоманду в интерфейсе SFTP для передачи файла с удаленного сервера в вашу локальную систему:

get [path to file]

Например, чтобы передать файл с именем example_document.txt из домашнего каталога удаленной системы в локальную, используйте:

get example_document.txt

Перенос файла с удаленного сервера в локальную систему

По умолчанию SFTP передает файлы в домашний каталог локальной системы. Чтобы перенести файлы в другой каталог, добавьте путь к каталогу в конце getкоманды:

get example_document.txt Downloads

Передача файла с удаленного сервера в определенный каталог в локальной системе

Чтобы изменить имя файла в локальной системе, добавьте новое имя файла в конец getкоманды.

get example_document.txt sample01.txt

Передача файла с удаленного сервера в локальную систему и изменение имени файла

В приведенном выше примере getкоманда извлекает файл example_document.txt и сохраняет его как sample01.txt в локальной системе.

SFTP также позволяет передавать весь каталог из удаленной системы с помощью -rфлага, указывающего на рекурсивную передачу всех файлов в каталоге:

get -r Example_Directory

Перенос каталога с удаленного сервера в локальную систему

Добавьте -Pфлаг в getкоманду для передачи файла или каталога с сохранением разрешений и времени доступа:

get -Pr Example_Directory

Используйте lsкоманду для проверки передачи в локальную систему:

ls -l

Проверка того, что файлы были перенесены в локальную систему

Перенос локальных файлов на удаленный сервер

Чтобы передать файлы из локальной системы на удаленный сервер, используйте putкоманду. Команда putиспользует тот же синтаксис и параметры, что и getкоманда.

put [path to file]

Например, чтобы передать файл example01.txt на удаленный сервер, используйте:

put example01.txt

Передача файла из локальной системы на удаленный сервер

Чтобы передать файл в определенный каталог на удаленном сервере, добавьте путь к этому каталогу в конец putкоманды.

put example01.txt Example_Directory

Перенос файла из локальной системы в определенный каталог на удаленном сервере

Добавление нового имени файла в конец putкоманды изменяет имя переданного файла на удаленном сервере.

put example01.txt text_sample.txt

Передача файла из локальной системы на удаленный сервер и изменение имени файла

Для переноса всего каталога требуется -rфлаг.

put -r Test_Directory

Перенос каталога из локальной системы на удаленный сервер

Добавьте к команде -Pфлаг putдля сохранения прав доступа к файлам:

put -Pr Test_Directory

Проверьте передачу файла с помощью lsкоманды в удаленной системе:

Проверка того, что файлы были перенесены на удаленный сервер

Обслуживание файлов с использованием SFTP

SFTP поддерживает базовое обслуживание файлов. Например, используйте SFTP для изменения прав доступа к файлам и каталогам в удаленной системе.

Команда chownменяет владельца файла аналогично команде chmod:

chown [user ID] [path to file]

В отличие от chmodкоманды, chownпринимает только идентификаторы пользователей, а не имена пользователей. Чтобы найти UID для удаленного сервера с помощью интерфейса SFTP, необходимо передать файл /etc/passwd и получить к нему доступ:

get /etc/passwd
!less passwd

UID для каждого пользователя можно найти в третьем столбце, разделенном двоеточиями:

Использование файла passwd для поиска идентификаторов пользователей для удаленного сервера

Команда chmodработает так же, как в стандартной оболочке:

chmod [permission] [path to file]

Другой вариант — изменить владельца файла группы с помощью chgrpкоманды:

chgrp [group ID] [path to file]

Как и в случае с UID, идентификаторы групп находятся в третьем столбце файла / etc/group на удаленном сервере:

get /etc/group
!less group

Использование файла группы для поиска идентификаторов групп для удаленного сервера

SFTP позволяет вам установить локальную маску, которая изменяет права доступа к файлам по умолчанию для файлов, передаваемых в локальную систему.

Например:

lumask 022

Приведенная выше команда изменяет локальную umask на 022. Каждый файл, переданный после того, как вы установили эту маску, теперь по умолчанию имеет разрешение 644. Вы по-прежнему можете сохранить исходное разрешение, используя -pфлаг.

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

Например, используя chmodкоманду в локальной системе:

!chmod [permission] [path to file]

Заключение

После прочтения этого руководства вы сможете использовать SFTP для передачи файлов и каталогов между удаленными системами.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.