Перенос данных по SSH — это безопасный способ передачи файлов и данных между компьютерами через зашифрованное соединение. SSH (Secure Shell) обеспечивает конфиденциальность и целостность данных во время передачи. Вот основные способы переноса данных с использованием SSH:
1. Команда scp (Secure Copy):
- scp — это утилита командной строки, которая позволяет копировать файлы и каталоги между компьютерами по протоколу SSH.
- Синтаксис:scp [опции] [источник] [назначение]
scp [пользователь@]хост:путь/к/файлу локальный_путь (копирование с удалённого сервера)
scp локальный_путь [пользователь@]хост:путь/к/назначению (копирование на удалённый сервер) - Примеры:
Копирование файла с локального компьютера на удалённый сервер:scp файл.txt пользователь@хост:/путь/к/назначению
Копирование каталога с удалённого сервера на локальный компьютер:scp -r пользователь@хост:/путь/к/каталогу локальный_путь (-r означает рекурсивно, для каталогов) - scp подходит для копирования отдельных файлов или небольших каталогов.
2. Команда rsync (Remote Sync):
- rsync — это более мощная утилита, чем scp, которая позволяет синхронизировать файлы и каталоги между компьютерами по SSH.
- rsync умеет передавать только изменения, а не весь файл целиком.
- Синтаксис:rsync [опции] [источник] [назначение]
rsync [пользователь@]хост:путь/к/файлу локальный_путь (копирование с удалённого сервера)
rsync локальный_путь [пользователь@]хост:путь/к/назначению (копирование на удалённый сервер) - Примеры:
Синхронизация каталога с локального компьютера на удалённый сервер:rsync -avz каталог/ пользователь@хост:/путь/к/назначению (-a означает архивный режим, -v означает подробный вывод, -z означает сжатие)
Синхронизация каталога с удалённого сервера на локальный компьютер:rsync -avz пользователь@хост:/путь/к/каталогу/ локальный_путь - rsync подходит для синхронизации больших каталогов и файлов, особенно когда нужно передавать только изменения.
3. SSH-туннелирование (SSH Tunneling):
- SSH-туннелирование позволяет безопасно передавать данные через зашифрованное соединение SSH, даже если протокол передачи данных не поддерживает шифрование.
- Это полезно для доступа к удалённым сервисам, которые не доступны напрямую из-за брандмауэров или других ограничений.
- Примеры:
Перенаправление локального порта на удалённый порт:ssh -L локальный_порт:хост:удалённый_порт пользователь@хост
Перенаправление удалённого порта на локальный порт:ssh -R удалённый_порт:хост:локальный_порт пользователь@хост
4. SFTP (SSH File Transfer Protocol):
- SFTP — это интерактивный протокол передачи файлов, который работает поверх SSH.
- Он позволяет просматривать, загружать и скачивать файлы и каталоги на удалённом сервере.
- Можно использовать командную строку sftp или графические клиенты, такие как FileZilla.
- Примеры:
Подключение к удалённому серверу:sftp пользователь@хост
Загрузка файла:put локальный_файл
Скачивание файла:get удалённый_файл
5. SSHFS (SSH File System):
- SSHFS позволяет монтировать удалённый каталог на локальный компьютер через SSH.
- Это позволяет работать с удалёнными файлами и каталогами так же, как с локальными.
- Примеры:
Монтирование удалённого каталога:sshfs пользователь@хост:путь/к/каталогу локальный_путь
Меры безопасности:
- Используйте надёжные пароли или ключи SSH.
- Отключите аутентификацию по паролю и используйте аутентификацию по ключам SSH.
- Регулярно обновляйте SSH-сервер.
- Используйте брандмауэр для ограничения доступа к SSH-серверу.