Удалённое подключение по SSH

Несмотря на то, что ваш микрокомпьютер является полноценным рабочим устройством с дисплеем и клавиатурой, размера его экрана недостаточно для комфортной работы, особенно если вы всерьёз заняты изучением Linux и программирования. Эту проблему легко решить, подключаясь к микрокомпьютеру по SSH.

SSH (Secure Shell) - это сетевой протокол, который позволяет безопасно подключаться к удалённой машине с другого устройства из локальной сети или из любого другого места при условии, что там есть интернет и вы настроили так называемый проброс порта от своего домашнего роутера до микрокомпьютера.

Для приёма подключения по SSH необходимо, чтобы на микрокомпьютере был установлен и работал демон sshd. Демоном называется программа, автоматически запускаемая операционной системой и работающая в фоновом режиме. В вашем дистрибутиве Armbian Linux за загрузку и поддержание работы демонов (и не только их) отвечает система инициализации systemd.

Мы ещё не говорили о systemd и сейчас не будем рассматривать её подробно, поэтому пока скажем лишь, что в терминологии systemd демоны называются сервисами. Убедиться в том, что сервис sshd установлен и работает, можно с помощью команды systemctl status sshd. Текст active (running) в выводе этой команды говорит о том, что сервис успешно загружен и работает.

Информация о сервисе sshd

Сервис sshd на вашем микрокомпьютере выполняет роль SSH-сервера, а на устройстве, с которого вы планируете подключиться к микрокомпьютеру, должен быть установлен SSH-клиент. В Windows 11 таким клиентом, например, является приложение OpenSSH, которое обычно установлено по умолчанию, а если нет - то может быть установленно через системное меню "Дополнительные компоненты".

OpenSSH в Windows

Подключение с помощью имени пользователя и пароля

Убедившись, что на компьютере, с которого будет выполняться удалённое подключение, есть SSH-клиент, а также, зная IP-адрес своего микрокомпьютера в домашней сети, выполнить подключение можно, введя в командной строке (приложение "Командная строка" или "Windows Power Shell", если вы работаете в Windows) команду ssh customer@192.168.0.127.

Команда на подключение

После ввода команды на подключение микрокомпьютер запросит пароль того пользователя, с именем которого вы пытаетесь подключиться. Если вы введёте правильный пароль, то удалённое подключение через SSH будет успешно установлено, и вы окажетесь в своей родной оболочке bash, с которой не зря учились работать до этого момента.

Подключение по SSH

Подключение с помощью ключей шифрования

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

Намного более надёжным вариантом является подключение по SSH с использованием ключей шифрования. Этот подход характеризуется следующими преимуществами:

Процесс настройки подключения с помощью ключей шифрования выглядит следующим образом:

После этого подключение к микрокомпьютеру можно выполнить с помощью той же самой команды ssh customer@192.168.0.127, но теперь авторизация произойдёт автоматически без запроса пароля.

Конфигурация SSH-клиента

В папке конфигурации SSH-клиента можно создать файл config, в котором с помощью несложного синтаксиса можно облегчить себе жизнь, если подключаться по SSH планируется часто. Например, если добавить в файл config следующий текст:

Host dev
HostName 192.168.0.127

то подключение можно будет выполнять с помощью псевдонима без необходимости писать IP-адрес командой ssh customer@dev. Полный список возможностей для конфигурации вашего SSH-клиента можно узнать, ознакомившись с его документацией.

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

В свою очередь на микрокомпьютере "яГрушко" в вашем домашнем каталоге тоже есть папка конфигурации SSH-клиента (~/.ssh). Она существует, поскольку микрокомпьютер сам может выступать в качестве SSH-клиента, с которого вы можете подключаться к другим устройствам, а также для хранения публичных ключей в файле authorized_keys, с помощью которых определяется круг закрытых ключей, которым разрешается авторизоваться на вашем микрокомпьютере от имени данного пользователя.

Конфигурация SSH-сервера

Файл /etc/ssh/sshd_config вашего микрокомпьютера "яГрушко" содержит различные конфигурационные параметры для тонкой настройки работы SSH-сервера. Путём комментирования/раскомментирования отдельных строк и установки значений для отдельных параметров можно настраивать SSH-сервер. Например, распространёнными практиками являются запретить авторизацию по SSH пользователю root, отключить возможности подключения по паролю или изменить номера порта, на котором сервер ожидает подключения по SSH со стандартного 22 на какой-нибудь другой в целях конспирации.

После сохранения изменений в файле /etc/ssh/sshd_config сервис sshd нужно перезапустить для применения изменений. Перезапустить его можно с помощью команды sudo systemctl restart sshd.

Подключение по SSH через интернет

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

Процедура настройки проброса порта, а также некоторые другие темы подробно разобраны в этом видео:

Назад На главную