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

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

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

Достижения

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

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/InputandOutputRedirectionGroup(["Input and Output Redirection"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/BasicSystemCommandsGroup -.-> linux/exit("Shell Exiting") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/InputandOutputRedirectionGroup -.-> linux/redirect("I/O Redirecting") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/RemoteAccessandNetworkingGroup -.-> linux/ssh("Secure Connecting") linux/RemoteAccessandNetworkingGroup -.-> linux/scp("Secure Copying") linux/RemoteAccessandNetworkingGroup -.-> linux/sftp("Secure File Transferring") linux/RemoteAccessandNetworkingGroup -.-> linux/ftp("File Transferring") subgraph Lab Skills linux/exit -.-> lab-40{{"Основы безопасного передачи файлов"}} linux/grep -.-> lab-40{{"Основы безопасного передачи файлов"}} linux/redirect -.-> lab-40{{"Основы безопасного передачи файлов"}} linux/service -.-> lab-40{{"Основы безопасного передачи файлов"}} linux/sudo -.-> lab-40{{"Основы безопасного передачи файлов"}} linux/ssh -.-> lab-40{{"Основы безопасного передачи файлов"}} linux/scp -.-> lab-40{{"Основы безопасного передачи файлов"}} linux/sftp -.-> lab-40{{"Основы безопасного передачи файлов"}} linux/ftp -.-> lab-40{{"Основы безопасного передачи файлов"}} end

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

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

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

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

sftp [email protected]
## Введите yes, чтобы принять отпечаток сервера

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

Передача файлов с использованием SFTP

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

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

put /home/labex/.zshrc

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

get.zshrc

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

Подключиться к удаленному серверу с использованием 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, за которой следует путь к локальному файлу. Например:

## Загрузите файл.zshrc на сервер и переименуйте его в zshrc-upload
put /home/labex/.zshrc zshrc-upload

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

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

get zshrc-upload

Файл будет скачан в текущую директорию на локальной машине.

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

После завершения передачи файлов вы можете закрыть соединение FTP с использованием команд bye или exit.

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

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

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

scp [опции] [источник] [значение назначения]

Аргументы source и destination могут быть как локальным файлом или каталогом, так и удаленным файлом или каталогом в формате имя_пользователя@хост:путь.

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

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

Пример команды SCP
cd ~/project

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

## Скопируйте файл на удаленный сервер
scp file.txt [email protected]:/home/labex/file-scp.txt

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

Скачивание файлов с удаленного сервера

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

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

scp [email protected]:/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 [email protected]:/home/labex/Code/

Резюме

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