Безопасная работа с файлами

Последнее обновление: 20.03.2024

Безопасное копирование файлов и scp

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

Копирования с клиента на хост выглядит следующим образом:

scp clientfile host:/hostfile

Данная команда копирует с компьютера-клиента clientfile на компьютер-хост с адресом "host" по пути hostfile.

Отмечу, что перед применением команды scp НЕ нужно вызывать команду ssh

Например:

eugene@Eugene:~$ scp ~/Documents/hello.txt 192.168.0.116:/home/eugene/Documents/client.txt
eugene@192.168.0.116's password: 
hello.txt                                     100% 1572   132.9KB/s   00:00    
eugene@Eugene:~$ 

Здесь со своего компьютера (клиента) я копирую файл ~/Documents/hello.txt на хост с адресом 192.168.0.116. И этот файл сохраняется по пути "/home/eugene/Documents/client.txt"

Если логин хоста отличается от логина клиента, то в адресе хоста также указывается логин пользователя на хосте:

scp ~/Documents/hello.txt eugene@192.168.0.116:/home/eugene/Documents/client.txt

Обратное копирование с хоста на клиент выглядит следующим обрахзом:

scp host:/hostfile clientfile

Здесь файл hostfile с компьютера-хоста копируется на компьютер-клиент по пути clientfile.

Например:

eugene@Eugene:~$ scp 192.168.0.116:/home/eugene/Documents/client.txt ~/Documents/hello2.txt
eugene@192.168.0.116's password: 
client.txt                                                     100% 1572    78.8KB/s   00:00  
eugene@Eugene:~$ 

Здесь с хоста с адресом 192.168.0.116 копируется файл "/home/eugene/Documents/client.txt" на компьютер-клиент по пути "~/Documents/hello2.txt"

Из других возможностей команды scp надо отметить опцию -r, которая позволяет копировать полную структуру подкаталогов.

sftp. Безопасный ftp

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

  • put: копирует файл с текущего компьютера на другой.

  • mput: копирует несколько файлов с текущего компьютера на другой.

  • get: копирует файл с другого компьютера на текущий.

  • mget: копирует несколько файлов с другого компьютера на текущий.

Команда sftp предполагает, что между двумя компьютерами уже установлено соединение SSH. Прежде чем устанавливать сеанс FTP с другим компьютером, используйте команду cd на локальном компьютере, чтобы перейти в каталог, в который или из которого надо скопировать файлы. При использовании put, mput, get и mget для передачи файлов этот каталог используется как локальный каталог по умолчанию. Чтобы установить сеанс sftp с компьютером с адресом 192.168.0.116, сначала необходимо использовать следующую команду:

sftp host

В данном случае предполагается, что имя пользователя на клиенте и хосте совпадают. Если имя пользователя на хосте отличается, то оно также указаывается перед символом @:

sftp eugene@host

Например:

eugene@Eugene:~$ sftp 192.168.0.116
eugene@192.168.0.116's password: 
Connected to 192.168.0.116.
sftp>

После этого вы увидите приглашение SFTP и окажетесь в корневом каталоге на удаленном хосте. Здесь вы можете использовать стандартные команды Linux, такие как ls, чтобы посмотреть список файлов, или cd, чтобы перейти в другой каталог:

eugene@Eugene:~$ sftp 192.168.0.116
eugene@192.168.0.116's password: 
Connected to 192.168.0.116.
sftp> ls -l
drwxrwxr-x    3 eugene   eugene       4096 Feb 18 16:47 Android
drwxr-xr-x    2 eugene   eugene       4096 Mar 20 13:33 Desktop
drwxr-xr-x    2 eugene   eugene       4096 Mar 20 13:42 Documents
drwxr-xr-x    2 eugene   eugene       4096 Mar 20 13:33 Downloads
drwxr-xr-x    2 eugene   eugene       4096 Mar 20 13:33 Music
drwxrwxr-x    3 eugene   eugene       4096 Dec  6  2022 Pictures
drwxr-xr-x    2 eugene   eugene       4096 Mar 20 13:33 Public
drwxr-xr-x    2 eugene   eugene       4096 Mar 20 13:33 Templates
drwxr-xr-x    2 eugene   eugene       4096 Mar 20 13:33 Videos
drwx------    8 eugene   eugene       4096 Feb 19 22:49 snap
sftp> 

Также после этого можно будет передать файлы между двумя компьютерами. Например, следующая команда будет использовать sftp для копирования файла "Documents/client.txt" с удаленного хоста в текущий каталог на текущем локальном компьютере-клиенте:

sftp> get Documents/client.txt
Fetching /home/eugene/Documents/client.txt to client.txt
client.txt                                                                   100% 1572   173.4KB/s   00:00    
sftp> 

Аналогично командой put можно передать файлы с компьютера-клиента на хост:

sftp> cd Documents
sftp> pwd
Remote working directory: /home/eugene/Documents
sftp> put Documents/hello.txt
Uploading Documents/hello.txt to /home/eugene/Documents/hello.txt
hello.txt                                                                    100% 1572   187.5KB/s   00:00    
sftp>>

Здесь я сначала перехожу на компьютере-хосте в папку Documents (учитывая, что по умолчанию я нахожусь в домашнем каталоге). В этот каталог будет сохраняться файл, копируемый с моего компьютера. Затем с помощью команды puе передаю на хост со своего компьютера файл "Documents/hello.txt". Поскольку когда, я открывал sftp-соединение, я у себя на компьютере находился в своем домашнем каталоге, то команда put будет брать файл относительно этого каталога.

После завершения передачи файлов для окончания сеанса sftp применяется команда quit или exit:

sftp> exit
eugene@Eugene:~$ 
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850