Перейти к основному содержимому

Настройка SSH-ключей

Зачем использовать SSH-ключи

  • Безопасность — ключи значительно сложнее подобрать, чем пароль
  • Удобство — не требуется вводить пароль при каждом подключении
  • Интеграция — упрощает работу с VSCode, CI/CD и автоматическими скриптами

Настройка в Ubuntu

1. Генерация ключа

Создайте новую пару ключей на вашем компьютере:

ssh-keygen -t ed25519 -C "pi@broverXX" -f ~/.ssh/brover_id_ed25519

Что означают параметры:

  • -t ed25519 — современный и безопасный тип ключа
  • -C — комментарий (необязательно, используется для идентификации)
  • -f — путь к файлу ключа

При запросе passphrase:

  • задайте пароль для дополнительной защиты (рекомендуется)
  • или нажмите Enter для упрощённого подключения

2. Копирование ключа на ровер

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

ssh-copy-id -i ~/.ssh/brover_id_ed25519.pub pi@broverXX.local

Команда автоматически:

  • создаёт директорию ~/.ssh на ровере (если её нет)
  • добавляет ключ в файл authorized_keys
  • выставляет корректные права доступа

3. (Опционально) Добавление ключа в ssh-agent

Если ключ защищён passphrase, можно сохранить его в агенте:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/brover_id_ed25519

Это позволит вводить пароль один раз за сессию.


Настройка в Windows (PowerShell)

1. Генерация ключа

ssh-keygen -t rsa -b 4096 -C "pi@broverXX"

Параметры:

  • -t rsa — тип ключа (совместимый вариант)
  • -b 4096 — длина ключа

2. Копирование ключа на ровер

type $env:USERPROFILE\.ssh\id_rsa.pub | ssh pi@broverXX.local "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh"

Команда вручную выполняет те же действия, что ssh-copy-id в Linux.


3. (Опционально) Добавление ключа в ssh-agent

Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_rsa

Проверка подключения

ssh pi@broverXX.local

Ожидаемый результат:

  • подключение выполняется без запроса пароля
  • отображается приглашение терминала ровера

Устранение проблем

ПроблемаВозможная причинаРешение
Permission denied (publickey)Ключ не добавленПроверьте ~/.ssh/authorized_keys на ровере
Запрашивается парольSSH использует другой ключУбедитесь в правильности имени хоста и пути к ключу
Ошибка прав доступаНеверные права на .sshВыполните: chmod 700 ~/.ssh и chmod 600 ~/.ssh/authorized_keys

Рекомендации

  • не передавайте приватный ключ третьим лицам
  • используйте passphrase для защиты ключа
  • регулярно удаляйте неиспользуемые ключи из authorized_keys