Как копировать файлы по SSH

Что такое SSH

SSH (от англ. Secure Shell – безопасная оболочка) – это сетевой протокол для безопасной передачи данных и удаленного подключения к серверу.

Для чего нужен SSH:

  • для удаленного администрирования сервера или локальных сетей,
  • для защиты данных при управлении почтовыми службами,
  • для сжатия файлов при передачи больших объемов информации,
  • для переноса сайтов с одного хостинга на другой,
  • для безопасной передачи данных.

Распространенная ситуация использования SSH – загрузка сайта на сервер хостинг-провайдера.

Передача файлов по SSH и подключение с его помощью к серверу осуществляется системными администраторами. Для работы с протоколом потребуются навыки системного администрирования, так как при подключении с помощью SSH вы не увидите привычного рабочего стола компьютера и набора программ. Вам откроется черное окно – командная строка, сюда вводятся команды, которые требуется выполнить.

Как работает SSH

Подключение к серверу по SSH позволяет работать с оборудованием так, как будто вы находитесь непосредственно возле него. Загрузка файлов по SSH осуществляется с помощью двух составляющих: SSH-сервера и SSH-клиента.

Для работы протокола использует открытый порт 22 (по умолчанию) и в случае успешной аутентификации предоставляет доступ администратору. Все запросы, которые вводятся на SSH-клиенте, проходят через защищенный канал связи и доставляются на SSH-сервер.

Чтобы начать передачу данных от клиента к серверу, необходимо установить SSH-соединение – защищенный туннель, по которому информация передается в зашифрованном виде.

Для шифрования используются публичный и частный ключ. Публичный – известен всем, частный – есть только у SSH-клиента и SSH-сервера. Авторизация проходит успешно, когда SSH-сервер получает публичный ключ, находит в своем списке разрешенных подключений клиента и отправляет ему информацию зашифрованную частный ключом. Если сервер получает обратно верную расшифровку, то клиент подключается к серверу. 

Отметим, что SSH-сервером может быть не только физический сервер, но и ноутбук или персональный компьютер.

Для установки SSH-соединения требуется специальная программа. Она должна быть установлена и на оборудовании, к которому планируют подключаться и на устройстве, с которого будет выполняться подключение.

Существуют платные и бесплатные SSH-серверы для популярных операционных систем:

  • для FreeBSD — OpenSSH:
  • для Unix-подобных OC — dropbear, lsh-server, openssh-server:
  • для Windows — freeSSHd, copssh, WinSSHD, OpenSSH и другие.

SSH-клиенты также разработаны для всех популярных десктопных и мобильных операционных систем.

  • для Unix-подобных OC — openssh-client, putty, ssh, Vinagre;
  • для Windows — PuTTY, SecureCRT, ShellGuard. Начиная с версии Windows 10 появилась встроенная программа OpenSSH;
  • Linux и MacOS имеют встроенный SSH-клиент, которому не требуется дополнительная настройка;
  • для Android — connectBot.

Загрузка файлов через SSH

  1. Как скопировать файл по SSH на Linux

Чтобы скопировать файл по SSH потребуется выполнить команду scp Подключение к серверу возможно только при наличии пароля и логина пользователя. Общая команда для скачивания имеет вид:

scp [опция] [источник] [получатель]

После запуска команды введите пароль от указанного удаленного сервера.

Как по SSH скачать файл на локальный компьютер с удаленного сервера

После подключения по SSH введите команду:

scp [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу] [путь к файлу]

Например, команда может выглядеть следующим образом:

scp root@111.111.111.111:/home/example.txt /directory

Она означает, что файл example.txt будет загружен с сервера 111.111.111.112 на локальный компьютер в папку «/directory».

Как загрузить файл на сервер по SSH с локальной машины

Чтобы загрузить файл по SSH на Linux выполните команду:

scp [путь к файлу] [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу]

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

scp /home/example.txt root@111.111.111.112:/directory

Команду можно расшифровать как: файл example.txt будет скопирован на хост 111.111.111.112 в директорию «/directory».

Как скопировать файл по SSH с одного удаленного сервера на другой

Перед началом передачи данных через SSH подключитесь к серверу, где находится файл и выполните команду:

scp [путь к файлу] [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу]

Указанная команда может иметь вид:

scp /home/example.txt root@111.111.111.112:/directory

Это значит, что файл example.txt будет скопирован на хост 111.111.111.112 в директорию «/directory».

Как скачать по SSH папку со всеми файлами и подпапками

Для скачивания папки со всеми файлами и подпапками, используйте ключ -r :

scp -r [источник] [получатель]

Например, для скачивания каталога /home/user/buh команда может выглядеть следующим образом:

scp –r /home/user/buh root@111.111.111.112:/root

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

Если работа SSH-сервера происходит через нестандартный порт, используйте опцию –P:

scp -P [источник] [получатель]

Например, команда может выглядеть следующим образом:

scp -P 2022 /home/example.txt root@111.111.111.112:/directory

Подключение происходит по порту 2022 к серверу 111.111.111.112, на этот сервер копируется файл example.txt с локального компьютера в директорию «/directory».

Чтобы узнать, какие еще возможности предоставляет команда, запустите scp без параметров и прочтите краткую справку.

  1. Как загрузить файл через SSH на Windows

Как происходит загрузка файлов по SSH на Windows? В операционной системе от Microsoft используется утилита pscp.exe. Принцип ее работы схож с командой scp. Утилита pscp.exe изначально добавлена в программу Putty (самый популярный SSH-клиент для Windows). Но сама Putty не включена в набор Windows-программ. Скачать ее можно на официальном сайте.

При работе с операционной системой Windows и SSH-клиентом Putty, формат команд остается такой же как при работе с UX-системами. Меняется название исполняемого файла и используется синтаксис обозначения пути к файлам и каталогам при указании источника или места назначения (сравните: /home/example.txt - для Linux и C:Tempfile.tgz для Windows).

Как скачать файл по SSH через Putty? Открываем командную строку cmd.exe (сочетание клавиш Win+R), переходим в каталог, где расположен файл pscp.exe, набираем команду:

pscp [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу] [путь к файлу]

например,

pscp.exe root@111.111.111.112:C:Tempfile.tgz /root

Загрузить файл на сервер можно командой:

pscp [путь к файлу] [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу]

например,

pscp.exe C:Tempfile.tgz root@111.111.111.112:/root

Чтобы увидеть список папок и файлов, размещенных на сервере, введите:

pscp -ls [имя пользователя]@[имя сервера/ip-адрес]:[путь]

Если в пути или в названии файла присутствуют пробелы, то обозначьте их двойными кавычками — “Путь к файлу”.

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

Заключение

SSH — удобный и надежный протокол для работы с удаленными устройствами. Он позволяет безопасно загружать и скачивать необходимую информацию с сервера на компьютер и наоборот. Преимущество SSH – простота использования и универсальность удаленного доступа, наличие ключей шифрования, обеспечивающих высокую степень защиты данных.

Всё ещё остались вопросы?