Настройка SSH-ключей (подключение без пароля)
Создание SSH-ключей позволяет установить безопасное и удобное подключение между вашим компьютером и Робоголовой без ввода пароля при каждом сеансе. SSH-ключи представляют собой пару файлов:
- Приватный ключ (
id_ed25519илиid_rsa) хранится на вашем компьютере. - Публичный ключ (
id_ed25519.pubилиid_rsa.pub) копируется на Робоголову в текстовый файл~/.ssh/authorized_keys.
При подключении SSH проверяет соответствие пары ключей и, если они совпадают, авторизует вас автоматически.
1. Зачем нужны SSH-ключи
- Безопасность: подобрать ключ намного сложнее, чем угадать пароль.
- Удобство: не нужно вводить пароль при каждом подключении.
- Автоматизация: упрощает запуск скриптов, CI/CD и другие автоматизированные процессы.
2. Настройка SSH-ключей в Ubuntu 20.04+
-
Генерация пары ключей
ssh-keygen -t ed25519 -C "pi@robohead" -f ~/.ssh/robohead_id_ed25519- При запросе Enter passphrase можно задать пароль для защиты ключа или оставить пустым для мгновенного подключения.
-
Копирование публичного ключа на Робоголову
ssh-copy-id -i ~/.ssh/robohead_id_ed25519.pub pi@roboheadXXX.local -
(Дополнительно) Добавление ключа в ssh-agent (если вы используете passphrase):
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/robohead_id_ed25519
3. Настройка SSH-ключей в Windows (PowerShell)
-
Генерация ключа
ssh-keygen -t rsa -b 4096 -C "pi@roboheadXXX"Прим.: можно использовать
ed25519, если он поддерживается вашей версией OpenSSH в Windows. -
Копирование публичного ключа на Робоголову
type $env:USERPROFILE\.ssh\id_rsa.pub | ssh pi@roboheadXXX.local "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh" -
(Если ключ с passphrase) Добавление в агент OpenSSH
Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_rsa
4. Проверка подключения
Выполните команду:
ssh pi@roboheadXXX.local
Если вы попадаете в консоль без запроса пароля и видите приглашение pi@roboheadXXX:~$, значит, настройка прошла успешно.
5. Устранение неполадок
| Проблема | Возможная причина | Решение |
|---|---|---|
Permission denied (publickey) | Ключ не скопирован, неправильные права | Проверьте ~/.ssh/authorized_keys и выставьте права: chmod 700 ~/.ssh, chmod 600 ~/.ssh/authorized_keys. |
| SSH продолжает запрашивать пароль | Неверный хост, имя или путь к ключу | Убедитесь, что используете roboheadXXX.local и корректный ключ. |
| Часто запрашивается passphrase | Ключ защищён паролем | Добавьте ключ в ssh-agent или используйте Pageant (в Windows). |
6. Рекомендации по безопасности
- Никогда не передавайте приватный ключ третьим лицам.
- При возможности используйте passphrase для дополнительной защиты ключа.
- Периодически меняйте ключи, удаляя устаревшие из
authorized_keys. - Убедитесь, что доступ к файлам
.sshограничен только пользователю.