Найти в Дзене

Перенос данных по ssh

Перенос данных по 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-серверу.