Основы безопасного передачи файлов

LinuxBeginner
Практиковаться сейчас

Введение

В этом лабе будут рассмотрены основы использования командной строки Linux для передачи файлов с использованием SFTP, FTP и SCP. Эти инструменты обычно используются для передачи файлов между удаленными серверами и могут быть полезны для таких задач, как загрузка файлов веб-сайта на сервер или скачивание данных с удаленной машины.

В лабораторной среде мы настроили SFTP и FTP сервер. При фактическом использовании убедитесь, что у вас есть необходимые учетные данные для доступа к удаленному серверу (например, имя пользователя и пароль) и что сервер настроен для разрешения передачи файлов по SFTP, FTP и SCP.

Достижения

  • sftp - Secure File Transfer Protocol
  • ftp - File Transfer Protocol
  • scp - Secure Copy

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

SFTP (Secure File Transfer Protocol) - это безопасный способ передачи файлов между локальной машиной и удаленным сервером.

Для подключения к удаленному серверу с использованием SFTP вы можете использовать команду sftp, за которой следует имя пользователя и IP-адрес или доменное имя сервера. Например:

Пароль для sftpuser - 123456.

sftp sftpuser@127.0.0.1
## Введите yes, чтобы принять отпечаток сервера

Вам будет предложено ввести пароль для пользователя. После ввода правильного пароля вы будете подключены к удаленному серверу.

Передача файлов с помощью SFTP

После подключения к удаленному серверу вы можете передавать файлы с помощью команд put и get.

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

put /home/labex/.zshrc

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

get .zshrc

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

exit

Обязательно закройте SFTP-соединение, прежде чем нажать кнопку "Continue" (Продолжить).

Подключиться к удаленному серверу с использованием FTP

FTP (File Transfer Protocol) - это стандартный сетеевой протокол, используемый для передачи файлов между локальной машиной и удаленным сервером. Он менее безопасен, чем SFTP, так как передает данные в открытом виде.

Вы можете проверить статус службы FTP, выполнив следующую команду:

sudo service vsftpd status

Если служба FTP не запущена, вы можете запустить ее, выполнив следующую команду:

sudo service vsftpd start

Для подключения к удаленному серверу с использованием FTP вы можете использовать команду ftp, за которой следует IP-адрес или доменное имя сервера. Например:

Имя пользователя для ftp - ftpuser, а пароль - 123456

ftp 127.0.0.1

Вам будет предложено ввести имя пользователя и пароль для сервера. После ввода правильных учетных данных вы будете подключены к удаленному серверу.

Передача файлов с помощью FTP

После подключения к удаленному серверу вы можете передавать файлы с помощью команд put и get.

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

## Upload .zshrc file to the server and rename it to zshrc-upload
put /home/labex/.zshrc zshrc-upload

Файл будет загружен в текущий каталог на сервере (/home/ftpuser).

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

get zshrc-upload

Файл будет загружен в текущий каталог на локальном компьютере.

Узнайте больше о командах FTP, выполнив команду help в оболочке FTP (FTP shell).

Когда вы закончите передачу файлов, вы можете закрыть FTP-соединение, используя команду bye или exit.

bye

Обязательно закройте FTP-соединение, прежде чем нажать кнопку "Continue" (Продолжить).

Копирование файлов на удаленный сервер

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

Базовый синтаксис команды scp выглядит следующим образом:

scp [options] [source] [destination]

Аргументы source (источник) и destination (назначение) могут представлять собой как локальный файл или каталог, так и удаленный файл или каталог в формате username@host:path.

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

Чтобы узнать пароль пользователя labex, введите printenv | grep PASSWORD в терминале рабочего стола. В других терминалах вне интерфейса рабочего стола этот пароль будет недоступен.

Пример команды SCP

cd ~/project

## Просмотр пароля для пользователя labex
printenv | grep PASSWORD

## Копирование файла на удаленный сервер
scp file.txt labex@127.0.0.1:/home/labex/file-scp.txt

## Введите пароль пользователя labex

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

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

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

scp labex@127.0.0.1:/home/labex/file-scp.txt /home/labex/file-scp-new.txt

Вы также можете указать локальную директорию в качестве назначения, убедитесь, что в пути есть конечный слеш (/).

Расширенные параметры SCP

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

  • -r - Этот параметр позволяет рекурсивно копировать целые директории.
  • -C - Этот параметр включает сжатие во время передачи файлов, что может быть полезно при передаче больших файлов по медленному соединению.
  • -P - Этот параметр позволяет указать номер порта для соединения.

Например, чтобы скопировать директорию ~/Desktop с локальной машины на удаленный сервер с IP-адресом 127.0.0.1 с использованием сжатия и указанием номера порта, вы бы использовали следующую команду:

scp -r -C -P 22 ~/Desktop labex@127.0.0.1:/home/labex/Code/

Резюме

В этом практическом занятии были рассмотрены команды Linux SFTP, FTP и SCP, которые используются для передачи файлов между локальной машиной и удаленным сервером или между двумя удаленными серверами. SFTP - это безопасный способ передачи файлов, в то время как FTP - это стандартный сетеевой протокол, менее безопасный, чем SFTP. SCP - это утилита командной строки, которая позволяет безопасно передавать файлы между локальной машиной и удаленным сервером или между двумя удаленными серверами с использованием SSH (Secure Shell) для шифрования передаваемых данных. Также были рассмотрены некоторые расширенные параметры команды SCP, которые можно использовать для настройки передачи файлов, такие как параметры -r, -C и -P.