Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ssh advanced setup (ssh-keys) #503

Merged
merged 18 commits into from
Mar 12, 2024

Conversation

Qandra-Si
Copy link
Contributor

Прошу PA статьи по использованию ssh-ключей - очевидный, но не рассмотренный вариант подключения к Клеверам.

П.С.: (скромно) прошу не прятать статью слишком глубоко, с целью популяризации ssh-оболочки с рядах учащихся/пользователей Клевера

Спасибо!

Qandra-Si and others added 18 commits March 3, 2024 22:08
…м, понадобятся команды перехода в домашнюю папку, а также переменная HOME
…ключей, с удалённым выполнением команд и копированием файлов
…нялся) и добавил обход ключа, если он не подошёл (иначе вообще подключиться по ssh не удастся с таким конфигом)
… of known hosts." удалил ненужный параметр (достаточно одного)
@okalachev
Copy link
Member

okalachev commented Mar 12, 2024

Здравствуйте, спасибо за статью!

Эта статья по объему идеально ложится в "Дополнительные материалы", но для статьи на самом верху в ней все сформулировано слишком подробно и длинно. Много излишних формулировок, типа "эпиграфа" вначале, подробного определения понятия SSH, подробного цитирование вывода всех команд, и всяких мелких усложнений ("сеть Интернет" вместо "интернет" и т. д.). Предполагается, что статьи в разделе "Работа с Raspberry Pi" пользователь будет более-менее просматривать все целиком по ходу освоения Клевера, поэтому они сформулированы максимально кратко и сжато.

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

@okalachev okalachev merged commit 3b7242f into CopterExpress:master Mar 12, 2024
5 checks passed
@Qandra-Si
Copy link
Contributor Author

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

Супер! Спасибо, Олег. Так хорошо, - кому надо тот найдёт.

Что касается сильно сократить и убрать лишнее, оставив только последовательность действий, то как давний пользователь ssh я и так сократил пояснения. Совсем без них к сожалению нельзя, т.к. у всех настроек всегда есть последствия, боюсь что непонимание зачем-так-и-как-это-работает создаст ненужные проблемы (а если учесть зоопарк дистрибутивов, то пришлось писать некоторые вещи "скрестя пальцы" в надежде, что люди не столкнутся с возможными проблемами). Впрочем, я ещё раз подумаю, где можно кардинально сократиться?

В любом случае планировал к вам вернуться с этой темой чуть позже, потому как есть два момента:

  • первый: (полагаю вы в курсе, что) ssh запускает командную оболочку, это можешь быть как /bin/bash, или /bin/sh, или что-то иное что поддерживает ssl, а потом не обязательно переходит в режим терминала... так вот, если такие режимы использования ssh, когда bash не запускается, а следовательно не выполняется всё то, что находится в .bashrc, (вот тут не знаю, в курсе ли вы?) в текущей версии образа, к сожалению, находятся критические настройки, которым место в /etc/environment. Например по этой причине нельзя сделать так: ssh 192.168.11.1 python3 ~/start.py или как-то ещё подать скрипт как удалённую команду.

  • второй: raspberry со своим ext4 совершенно ненадёжна, я уже сталкивался с тем, что флешка окирпичивается из-за того, что ломается операционная система если отключать АКБ (может быть можно в образе перейти на ubifs?) - метод решения это ssh 192.168.11.1 'sudo shutdown now', и к этому "решению" надо приучать пользователей (у меня дочь дрон выключает лишь только так). Здесь я хотел подумать над "внешней кнопкой выключения raspberry" - ещё одна статья в доп.материалы (может вы даже комплектацию Клевера доработаете).

@okalachev
Copy link
Member

  1. В .bashrc находится вызов ROS'овского setup.bash, который (динамически!) заполняет переменные окружения, необходимые для запуска ROS-приложений. В документации ROS рекомендуется делать именно так, а не, например, добавлять эти переменные в /etc/environment. Одна из причин в том, что как я уже упомянул, некоторые переменные заполняются динамическим образом. То есть любой ROS-пакет может добавить свой собственный инициализирующий скрипт, который будет заполнять переменные в зависимости от чего угодно, и ROS это подхватит.

    Впрочем, мало какие пакеты это реально делают. На самом деле я уже задумывался над использованием /etc/environment. Сейчас, как видно, даже clover.service дергает setup.bash, хоть это и сильно дольше, чем статические переменные. Но зато это гарантировано будет работать с любыми пакетами. В общем, не очевидно.

  2. Про кнопку выключения мы, кстати, тоже думали. Тут вопрос тоже открытый, стоит ли возня свеч или пользователям проще восстановить SD'шку в случае порчи файловой системы — не могу сказать. Лично у меня, пожалуй, второе (я не держу никаких невосстанавливаемых файлов только на флешке).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants