Как безопасно передавать файлы в Linux с помощью sftp

В этом руководстве будет рассмотрено, как использовать sftp (протокол передачи файлов SSH), программу командной строки для безопасной передачи файлов между двумя компьютерами Linux по сети.

Что такое SFTP?

Перед определением SFTP важно сделать шаг назад и понять FTP (протокол передачи файлов), предшественника SFTP.

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

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

SFTP также может помочь вам и вашей организации достичь определенных нормативных требований, таких как GDPR или CCPA, которые требуют передачи конфиденциальных данных наиболее безопасным способом.

Доступ к удаленному ПК

Linux в основном позволяет передавать файлы по SFTP через программу sftp . Sftp – это надежное программное обеспечение командной строки, которое позволяет безопасно и интерактивно передавать файлы по SSH.

Вы можете подключиться к удаленному серверу через sftp, используя следующую команду. Не забудьте заменить заполнители " username " и " ip-address-of-remote-pc " на правильное имя пользователя и IP-адрес сервера соответственно.

 sftp username@ip-address-of-remote-pc

При появлении запроса введите пароль сервера. Если терминал встречает вас статусом Connected , это означает, что вы успешно установили соединение. Мигающий курсор просто показывает, что sftp находится в интерактивном режиме.

Примечание . Если у вас нет удаленного сервера для взаимодействия, вы можете опробовать sftp локально, выполнив следующую команду:

 sftp 127.0.0.1

Интерактивные команды sftp

Когда вы находитесь в интерактивном режиме, вы можете использовать несколько команд для взаимодействия с удаленным ПК. Некоторые из наиболее важных команд описаны ниже. Обратите внимание, что, в отличие от большинства команд Linux, команды sftp не чувствительны к регистру.

Список файлов на удаленном сервере

Одна из наиболее важных задач – составить список файлов в каталоге, чтобы у вас было представление о том, что вы хотите передать. Вы также можете получить информацию о файлах и папках удаленного ПК, включая размер и разрешения для сохраненных файлов.

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

 ls

Вы можете использовать большинство флагов команды ls, такие как -a , -l и т. Д., И они будут работать нормально.

Чтобы вывести список файлов на локальном рабочем компьютере, вы можете использовать следующую команду:

 lls

Список текущего рабочего каталога

Вы также можете вывести путь к текущему рабочему каталогу на удаленном ПК с помощью pwd . Команда pwd означает « Текущий рабочий каталог» .

 pwd

Чтобы отобразить текущий рабочий каталог на вашем локальном ПК:

 lpwd

Используйте сочетание клавиш Ctrl + L, чтобы очистить вывод интерактивного терминала.

Загрузка файлов на сервер

Используйте команду put для передачи файлов с локального ПК на удаленный сервер. Например, чтобы перенести ISO-образ Linux Manjaro из вашей домашней папки, используйте команду ниже. Вы можете использовать флаг -R для рекурсивного копирования каталога.

 put manjaro-xfce-21.0.7-minimal-210614-linux54.iso

Результат будет аналогичен показанному ниже. Sftp будет отображать ход передачи файла в режиме реального времени.

Кроме того, поскольку путь к удаленному серверу не указан, sftp поместит файл по пути, аналогичному пути на локальном ПК.

Если вы хотите скопировать несколько файлов, используйте вместо этого команду mput . Например, чтобы скопировать все файлы электронных таблиц Excel (XLS) в каталог:

 mput *.xls

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

Загрузка файлов с сервера

Используйте команду get для загрузки файлов с сервера на локальный компьютер. Например, чтобы скопировать HTML-файл с именем index.html с сервера, просто выполните следующую команду:

 get index.html

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

 mget *.html

Изменение прав доступа к файлу

Вы также можете изменить права доступа к файлу на удаленном сервере в интерактивном терминале с помощью команды chmod . Например, чтобы предоставить все права доступа к файлу index.html , выполните следующую команду:

 chmod 777 index.html

Выйти из сеанса sftp

Чтобы выйти из интерактивного терминала sftp, вы можете просто ввести команду bye . В качестве альтернативы вы также можете использовать команды exit или quit .

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

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

Sftp поставляется с хорошей документацией. Просто введите любую из следующих команд, чтобы получить справку в интерактивном окне терминала.

 help?

Практическое применение SFTP

В этом руководстве показано, как безопасно и интерактивно передавать данные между компьютерами Linux с помощью команды sftp. Если вы являетесь пользователем Raspberry Pi, вам также может быть интересно узнать о различных способах передачи данных с вашего Raspberry Pi на ПК.