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

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

SSH-ключи позволяют настроить безопасное подключение к BRover-E5 без ввода пароля при каждом подключении.

Вместо пароля используется криптографическая пара ключей:

  • Приватный ключ — хранится только на вашем компьютере и используется для аутентификации
  • Публичный ключ — размещается на ровере и используется для проверки подключения
Два разных пароля
  1. Пароль пользователя pi — пароль учётной записи на ровере, по умолчанию brobro. При входе по SSH-ключу его вводить не нужно. Для sudo он по-прежнему может понадобиться.
  2. Парольная фраза ключа (passphrase) — необязательный пароль, который вы задаёте при создании ключа на компьютере. Он защищает сам файл приватного ключа.

1. Подготовьте подключение​

Убедитесь, что подключение по SSH с паролем уже работает. Оно потребуется для первоначального добавления ключа.

В примерах замените broverXX.local именем своего ровера. Если подключаетесь по IP-адресу, используйте его вместо имени.

Все команды ниже выполняются на компьютере, если явно не указано иное.

2. Настройте ключ​

Проверьте существующие ключи​

Терминал Ubuntu на компьютере
ls -la ~/.ssh

Если каталог отсутствует, переходите к созданию ключа. Файл с окончанием .pub — публичный ключ; одноимённый файл без .pub — приватный. Если подходящая пара уже есть, новый ключ создавать не обязательно. В последующих командах используйте имя выбранного ключа вместо id_ed25519.

Создайте ключ, если его ещё нет​

Терминал Ubuntu на компьютере
mkdir -p ~/.ssh
ssh-keygen -t ed25519 -C "brover-access" -f ~/.ssh/id_ed25519

-t ed25519 выбирает тип ключа, -C задаёт произвольный комментарий, а -f — имя файла. Будут созданы id_ed25519 и id_ed25519.pub.

При запросе passphrase задайте парольную фразу и повторите её. Для подключения без парольной фразы можно оставить поле пустым, нажав Enter.

Не перезаписывайте существующий ключ

Если ssh-keygen предлагает перезаписать файл, откажитесь. Используйте существующую пару ключей или выберите другое имя файла для новой.

Добавьте публичный ключ на ровер​

Терминал Ubuntu на компьютере
ssh-copy-id -i ~/.ssh/id_ed25519.pub pi@broverXX.local

При запросе введите текущий пароль пользователя pi. Команда добавит публичный ключ в ~/.ssh/authorized_keys на ровере. Уже установленный ключ обычно не добавляется повторно.

Проверьте подключение​

Терминал Ubuntu на компьютере
ssh pi@broverXX.local

Стандартный ключ id_ed25519 из каталога .ssh OpenSSH ищет автоматически.

При успешном подключении появится приглашение терминала ровера. Пароль пользователя pi запрашиваться не должен. Запрос парольной фразы ключа допустим, если вы задали её при создании ключа.

3. Упростите подключение​

Для стандартного ключа id_ed25519 дополнительных настроек не требуется. Если вы используете ключ с другим именем, его можно указать в конфигурации SSH.

Если ключ сохранён под другим именем

На компьютере откройте или создайте файл:

  • Ubuntu: ~/.ssh/config;
  • Windows: %USERPROFILE%\.ssh\config (без расширения .txt).

Добавьте блок, сохранив существующие настройки других подключений:

SSH-config на компьютере
Host broverXX.local
User pi
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes

Замените broverXX.local именем своего ровера, а id_ed25519 в строке IdentityFile — именем своего ключа. При подключении по IP укажите IP-адрес в строке Host.

Теперь путь к ключу указывать не нужно:

На компьютере
ssh pi@broverXX.local

Если подключение не работает​

СитуацияЧто проверить
Запрашивается пароль pi@…Проверьте имя ровера, наличие пары id_ed25519 и id_ed25519.pub на компьютере и добавление соответствующего публичного ключа на ровер.
Запрашивается Enter passphrase for key…Это парольная фраза ключа, а не пароль ровера. Введите фразу, заданную при создании ключа.
Permission denied (publickey)Проверьте пользователя pi, выбранный ключ и наличие его публичной части в ~/.ssh/authorized_keys на ровере.
Ключ есть на ровере, но вход не работаетВ SSH-сеансе ровера проверьте права: chmod 700 ~/.ssh и chmod 600 ~/.ssh/authorized_keys.
ssh или ssh-keygen не найдены в WindowsПроверьте наличие компонента Клиент OpenSSH в дополнительных компонентах Windows. Сервер OpenSSH на компьютере для подключения к роверу не нужен.

Если ровер недоступен по сети, начните с раздела SSH-подключение.