Одним из самых распространенных способов удаленного управления Raspberry Pi бесспорно является протокол SSH. При помощи подключения по SSH мы можем получить доступ к командной строке Raspberry с другого устройства.
Сетевой протокол SSH (Secure Shell) обеспечивает защищенное соединение между клиентом и сервером. При этом протокол шифрует весь трафик и допускает использование разных алгоритмов шифрования. Но не будем сильно погружаться в его функционирование, сегодня речь о другом.
Итак, реализуем следующее:
При этом Raspberry Pi должна быть подключена к сети. И здесь у нас два основных варианта:
- Ethernet
- Wi-Fi
Я использую второй, но с точки зрения подключения по SHH это не играет особой роли. Так что двигаемся дальше.
Шаг 1. Включение SSH на Raspberry Pi.
И на этом этапе у нас есть сразу несколько вариантов:
1. Если плата используется без дисплея, у нас нет возможности использовать командную строку или утилиты операционной системы для изменения настроек. В этом случае один из путей - поместить файл с именем ssh без расширения в корень раздела "boot" SD-карты, на которой хранится операционная система для Raspberry.
При установке Raspberry Pi OS на пустую карту памяти итоговая разметка карты будет содержать два раздела, первый из которых (меньшего размера) и является загрузочным и имеет метку "boot". Он то нас и интересует в данном случае.
При загрузке ОС проверяет наличие файла ssh, и если он обнаружен, то система включает SSH и удаляет этот файл. При этом содержимое файла не имеет никакого значения, он может быть и пустым.
С этим случаем разобрались, идем дальше.
2. Включение SSH через интерфейс системы. В данном случае все максимально просто. Заходим в Raspberry Pi Configuration и просто активируем SSH:
3. Использование инструмента raspi-config. Вводим в терминале команду:
sudo raspi-config
Далее следуем по пути Interfacing Options - SSH и включаем:
4. И, наконец, четвертый вариант - использование команды systemctl. Вводим в консоли:
sudo systemctl enable ssh sudo systemctl start ssh
На этом все 👍
Шаг 2. Определение IP-адреса Raspberry Pi.
Для подключения к плате нам понадобится узнать ее IP-адрес. В этом нам может помочь одна из команд:
ifconfig hostname -I
Можно использовать любую из них, итоговый результат будет идентичен. Для ifconfig:
Для hostname -I:
Как видите, в обоих случаях получаем IP - 192.168.0.102.
Шаг 3. Изменение имени пользователя и пароля.
По умолчанию в Raspberry Pi OS:
- имя пользователя - pi
- пароль - raspberry
Так вот для безопасности рекомендуется изменить стандартный пароль. Для этого, как и для включения SSH, есть несколько способов:
1. Через Raspberry Pi Configuration.
Запускаем Raspberry Pi Configuration и во вкладке System выбираем соответствующий пункт меню:
2. Установка пароля через raspi-config.
Снова вводим команду:
sudo raspi-config
И получаем возможность изменить пароль:
3. И еще один вариант заключается в использовании команды passwd. После ее вызова вводим новый пароль и затем еще раз повторяем его для подтверждения.
Шаг 4. Подключение по SSH.
На стороне Raspberry все готово, теперь осталось подключиться к плате удаленно. И этот шаг нам нужно разбить на два случая:
- SSH на Linux
- SSH на Windows
В такой последовательности и начнем.
SSH-клиент для Linux.
Здесь все очень просто, дело все в том, что дистрибутивы Linux включают в себя SSH-клиент по умолчанию, поэтому нам остается только использовать команду ssh. Рассмотрим пример для стандартного имени пользователя (pi) и полученного нами на шаге 2 IP-адреса. Вводим команду:
ssh pi@192.168.0.102
Далее нам потребуется ввести пароль и после этого мы получим доступ к консоли Raspberry:
И для отключения SSH - команда:
exit
SSH-клиент для Windows 10.
В Windows 10, начиная с обновлений, датированных октябрем 2018 года, также добавлена поддержка SSH без использования сторонних утилит. Используем полностью аналогичный механизм в командной строке Windows (только без sudo) и получаем аналогичный результат:
SSH-клиент для Windows.
Чуть "интереснее" дело обстоит для других версий Windows. Здесь уже без дополнительных инструментов не обойтись. Используем в качестве SSH-клиента утилиту PuTTY, которую можно скачать по этой ссылке. Устанавливаем и запускаем, в поле Host Name вводим IP-адрес Raspberry и нажимаем Open:
При первом запуске возникнет предупреждение, игнорируем его (нажимаем "Да"), после чего видим стандартное окно консоли, которое запрашивает у нас логин и пароль. Вводим верные данные и получаем доступ:
И на этом на сегодня заканчиваем! По итогу мы рассмотрели всевозможные варианты и конфигурации оборудования, так что теперь проблем с подключением по SSH возникнуть не должно. Небольшое продолжение можно найти тут.