Применяем SSH на миникомпьютере Raspberry Pi

Оглавление статьи: Применяем SSH на миникомпьютере Raspberry Pi
Содержание

В последнее время получил распространение отдельный класс устройств, предназначенный целям управления оборудованием, использования в качестве малых рабочих станций или создания простых серверов. Речь идет об компьютерах на одной плате, таких как Raspberry Pi. Несмотря на свои размеры применять их можно и в роли контроллера аппаратуры, и в качестве небольшого мультимедийного, почтового, файлового или web-сервера, не считая уже случаев работы тонкими клиентами. Остается только вопрос управления одноплатником. Можно конечно отдавать команды непосредственно в консоль или контролировать рабочий стол используя монитор, клавиатуру и мышь. Но, каждый раз подключение для каких-либо действий дополнительного оборудования создает излишние затраты времени и труда. Выход есть и имя ему Secure shell. Изначальный сетевой протокол, используемый для доступа к консоли, удаленной *-NIX подобной системы, со временем резвившейся в удобное средство управления и файловой передачи ОС Linux.

Raspberry PI

 

Все приведенные далее сведения в основном будет относиться к Raspberry PI 3 и более старшим моделям одноплатников одноименной фирмы.

Raspberry PI 3

Secure shell

Как уже описано ранее SSH — протокол передачи информации, используемый в Linux, который в свою очередь устанавливается на Raspberry PI 3 под именем Raspbian. Причем речь идет не только о текстовых данных, но и потоковом видео и аудио вещании, изображениях, бинарных файлах. В полноформатных *NIX (Linux) системах он используется для доступа к экранным элементам управления и окнам X-ов, с возможностью их запуска на главной машине и отображения результата на клиентской. К сожалению, для малины подобная функция не доступна в рамках стандартного Raspbian. Все же названый клон Debian обладает определенными ограничениями по функциональности ОС, непосредственно связанными с относительно слабой аппаратной начинкой одноплатника. Если все же требуется получить доступ к рабочему столу, тут официальная документация системы рекомендует присмотреться к средствам контроля по протоколу VNC, использование которого, как и Secure Shell изначально заложено в малинку.

открытая VNC сессия Raspberry PI на экране ноутбука

Что отличает SSH от того же TELNET, — наличие шифрования канала. Используя протокол можно не беспокоится о безопасности передаваемой информации, так как весь обмен единовременно кодируется. Еще одной из множества возможностей, заложенных в Secure shell можно упомянуть сжатие передаваемых данных, которое активируется соответствующей опцией на стороне сервера или клиента. Функция в некоторых случаях позволяет разгрузить канал обмена по протоколу SSH уменьшив объем потока информации за счет компрессии.

Активация и установка на Raspberry PI

Организация интерфейсного доступа к консоли или возможностям протокола SSH начинается с запуска его серверной части на Raspberry PI. Сделать можно названую процедуру аж тремя методами при прямом подключении и одном «безголовом». Конечно, для первых изначально потребуется непосредственный доступ к консоли Raspbian Pi, с аппаратными клавиатурой и монитором. И во всех случаях, после того, как установлен параметр активации, нужно перегрузить Raspberry Pi для запуска сервиса.

один из вариантов проверки запуска SSH сервера

Итак, последовательность действий:

Первый

Классический метод, работающий в любом Linux использующем systemd в качестве системы инициализации. Вводим в консоли:

sudo -s
# активируем сервис:
sudo systemctl enable ssh
sudo systemctl start ssh

Второй

Выполняется непосредственно из оконной системы Raspberry PI 3. В меню «Preferences» находящейся в своеобразном «пуск» на панели, нужно выбрать «Raspberry Pi Configuration». В открывшемся окне надо перейти на вкладку «Interfaces». В пункте SSH устанавливаем рядом расположенный переключатель в значение «Enabled». Далее делается подтверждение действия нажатием «Ок» внизу окна.

Raspberry Pi Configuration

Третий

Активация сервера названным методом подойдет для случаев, когда графический интерфейс в Raspbian отключен. В консоли нужно набрать:

sudo raspi-config

После нажатия «Enter», по требованию, вводится пароль администратора (для случаев, когда его использование включено правилами, указанными файлом /etc/sudoers.d/010_pi-nopasswd). По умолчанию запрос безопасности отключен.

После откроется текстовая система меню настройки, в которой нужно перейти в раздел «Interface Options», используя клавиши стрелок клавиатуры и кнопку «Enter».

Зайдя в названый пункт конфигурации надо переместится в раздел SSH, и следом активировать внизу экрана «Enable», или для некоторых версий Raspbian «Yes». Затем «Ok». В последующем открывшемся текстовом окне со списком настроек «Finish».

Enable

Четвертый

И наконец, метод работающий для тех случаев, когда физическое подключение к одноплатному компьютеру отсутствует и есть только сетевое. Здесь понадобиться внести небольшие изменения на SD-карту с установленной системой Raspbian. На ней нужно найти загрузочный раздел. Если ставить «вчистую» операционку, то он будет меньшим среди двух находящихся на карте. В корень помещается файл без расширения и с любым содержанием, по имени «ssh». Обнаружив его при загрузке, Raspbian запустит Secure shell сервер, с пустым паролем безопасности, и пользователем «pi» (без кавычек).

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

SD-карту

К вопросу об осуществлении доступа к названой части Raspbian из Windows. Проблемы в конкретном случае нет, по причине использования на загрузочном разделе файловой системы FAT32, родной для старших ОС от Microsoft. Здесь главное — наличие самого физического устройства чтения SD-карт.

Соединение

Итак, с моментом активации Secure shell на малинке разобрались. Осталось подключиться к ней через сеть и опробовать возможности протокола по управлению консолью Raspberry Pi.

Из Linux или MacOS

В составе дистрибутивов Linux или MacOS стандартно идет в поставке утилита «ssh», запуск которой производится из терминалов названых операционных систем. Для присоединения к малинке потребуется знать IP-адрес самого одноплатника в сети. Итак, в целях организации доступа к Raspberry Pi ssh набираем в консоли:

ssh pi@<ip адрес одноплатника>

Ответом будет запрос пароля, который по умолчанию проходится нажатием «Enter». Следом уже откроется командная строка малинки, предоставляя доступ к консоли одноплатника.

ssh консоль Raspberry PI с произведенным входом

В том случае, когда стандартное имя пользователя было изменено, новое указывается в продемонстрированной ранее командной строке, вместо «pi». Хотя можно сделать проще, вообще убрав все что написано до «@», с ним включительно, из параметров запуска ssh и ввести логин и пароль (если установлен) непосредственно в высветившееся приглашение «login as:».

Из Windows

Контроль по протоколу Secure shell из Microsoft Windows производится с использованием сторонней и бесплатной программы «PuTTY». Найти ее достаточно легко, введя название в строку поиска Яндекс или Google и скачав архив, предлагаемый на страницах по высветившимся ссылкам.

окно PuTTY в Windows 10

Открыв программу (можно от обычного пользователя), для подключения переходят в раздел «Session». Далее, во вкладке окна на экране, ставится выбор переключателя групп «Connection type» в позицию «SSH». Следом заполняется поле «Host Name (or IP-adress)» собственно адресом малинки. «Port» должен быть равен 22. «Saved session» вводится по желанию — потом можно использовать сохраненную информацию методом двух кликов без ручного ввода. Окончательным действием с целью осуществления подключения будет нажатие кнопки «Open», после которого уже высветится присоединенное окно консоли к Raspberry PI с предложением ввести имя пользователя.

PuTTY с открывшейся консолью Raspberry PI

Некоторые замечания

После настройки доступа по Secure shell рекомендуется озаботиться безопасностью подключения, даже в том случае, если малинка будет использоваться в качестве не присоединяемого к internet оборудования. Как говорится — в безопасности нужно предусмотреть все. Рано или поздно, возможно будет сделан глобальный выход в сеть. А уж там зависит организация безопасного доступа от элементарной забывчивости. Можно попросту поленится или «забегаться» и не установить пароль для логина или sudo, оставив все по умолчанию. Соответственно, другими словами, предоставив в собственное распоряжение потенциального злоумышленника, вычислительные мощности Raspberry PI работающего в локальной сети.

Основные рекомендации по безопасности, все команды в отношении которых выполняются в консоли малинки:

  1. Установка пароля root. Делается одним из двух методов, через

    sudo raspi-config

    с выбором второго пункта программы и действиями в рамках инструкций на экране. Другой способ проще — в командной строке набирается

    sudo passwd root

    с последующим вводом пароля и его подтверждения, устанавливаемого в строках «Enter new UNIX password» и «Retype new UNIX password»:Retype new UNIX passwordПоследняя приведенная на скриншоте команда «sudo passwd — unlock root» разблокирует учетную запись администратора, которая в свою очередь еще пригодится впоследствии.
  2. Ограничение использования sudo без пароля. Выполняется, открыв файл конфигурации доступа для редактирования командой

    sudo visudo /etc/sudoers.d/010_pi-nopasswd

    и заменив в строке с пользователем по умолчанию запись на pi ALL=(ALL) PASSWD: ALL. В том случае, если был внесен новый логин требуется приведенную строку указать и для него, вписав ее после имени внесенного, используемого при входе в систему.
  3. Добавление нестандартного пользователя (вписывается вместо <логин>) и удаление старого. Здесь требуется дать следующие команды:

    sudo -s
    # добавляем пользователя. После ввода команды будет спрошен пароль
    # для нового пользователя строкой, содержащей «password»
    adduser <логин>
    # даем ему права (участие в группах доступа)
    usermod -a -G \
    adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,gpio,i2c,spi <логин>
    # удаление стандартного pi. Но есть нюанс – в документации к
    # Raspberry PI выражена рекомендации этого не делать, так как в
    # некоторых приложениях он должен присутствовать в системе
    pkill -u pi
    deluser -remove-home pi

    добавление пользователя orca

Если стандартного пользователя не удалять (последние две строки игнорировать к вводу), — рекомендуется задать ему пароль, отличный от установленного по умолчанию. Выполняется действие набором «sudo passwd pi» в консоли.

Что еще

Отдельно хотелось бы рассмотреть случай подключенных пользователей по SSH с возможностью сжатия трафика. В Linux и MacOS для запуска режима компрессии используется модификатор команды с опцией «-C». Соответственно вызов программы доступа приобретает вид:

ssh -C <адрес малинки>

Работает метод сжатия не только в случаях удаленного контроля консоли по SSH, но и отправки файлов с использованием протокола Secure shell. Здесь применяется команда scp, входящая в общий пакет программ удаленного контроля. Формат со сжатием, для копирования файла из малинки:

scp -C pi@<адрес малинки>:<путь к файлу вместе с его именем> /куда/положить/файл

Ну или с использование ssh обратно, на Raspberry PI:

spc -C <имя файла> pi@<адрес малинки>:/куда/положить/файл

документация доступная по man scp

Проблемы соединения

Казалось бы, подключились после настройки. А, нет, иногда случается ошибка «Raspberry pi ssh connection refused». При этом до малинки пинг в сети идет. Причина тут может быть только одна — Secure shell не запущен или блокируется фаерволом внутреннего роутера или самой ОС. Требуется вначале проверить состояние SSH подключившись к Raspberry Pi непосредственно, затем посмотреть настройки операционной системы клиента на предмет поиска ограничений сетевых протоколов. Ну и если не поможет — разбираться конкретно с блокировками маршрутизатора.

Видео по теме

Хорошая реклама

Добавить комментарий Ваш e-mail не будет опубликован. Обязательные поля помечены *