Настройка 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