SSH (от англ. Secure Shell – безопасная оболочка) – это сетевой протокол для безопасной передачи данных и удаленного подключения к серверу.
Для чего нужен SSH:
Распространенная ситуация использования SSH – загрузка сайта на сервер хостинг-провайдера.
Передача файлов по SSH и подключение с его помощью к серверу осуществляется системными администраторами. Для работы с протоколом потребуются навыки системного администрирования, так как при подключении с помощью SSH вы не увидите привычного рабочего стола компьютера и набора программ. Вам откроется черное окно – командная строка, сюда вводятся команды, которые требуется выполнить.
Подключение к серверу по SSH позволяет работать с оборудованием так, как будто вы находитесь непосредственно возле него. Загрузка файлов по SSH осуществляется с помощью двух составляющих: SSH-сервера и SSH-клиента.
Для работы протокола использует открытый порт 22 (по умолчанию) и в случае успешной аутентификации предоставляет доступ администратору. Все запросы, которые вводятся на SSH-клиенте, проходят через защищенный канал связи и доставляются на SSH-сервер.
Чтобы начать передачу данных от клиента к серверу, необходимо установить SSH-соединение – защищенный туннель, по которому информация передается в зашифрованном виде.
Для шифрования используются публичный и частный ключ. Публичный – известен всем, частный – есть только у SSH-клиента и SSH-сервера. Авторизация проходит успешно, когда SSH-сервер получает публичный ключ, находит в своем списке разрешенных подключений клиента и отправляет ему информацию зашифрованную частный ключом. Если сервер получает обратно верную расшифровку, то клиент подключается к серверу.
Отметим, что SSH-сервером может быть не только физический сервер, но и ноутбук или персональный компьютер.
Для установки SSH-соединения требуется специальная программа. Она должна быть установлена и на оборудовании, к которому планируют подключаться и на устройстве, с которого будет выполняться подключение.
Существуют платные и бесплатные SSH-серверы для популярных операционных систем:
SSH-клиенты также разработаны для всех популярных десктопных и мобильных операционных систем.
Чтобы скопировать файл по 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 без параметров и прочтите краткую справку.
Как происходит загрузка файлов по 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 – простота использования и универсальность удаленного доступа, наличие ключей шифрования, обеспечивающих высокую степень защиты данных.