Raspberry Pi:Настройка/Удалённый доступ/SSH/Беспарольный SSH-доступ

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Беспарольный SSH-доступ[1]

Raspberry Pi можно настроить таким образом, чтобы вам, подключаясь к ней с компьютера, не приходилось каждый раз выполнять одну и ту же процедуру вписывания логина и пароля. Для этого потребуется сгенерировать SSH-ключ.

Поиск существующих SSH-ключей

Возможно, на компьютере, с помощью которого мы подключаемся к Pi, уже есть искомые нами ключи. Проверить это можно при помощи следующей команды:

ls ~/.ssh

Если вы увидите файлы с названиями id_rsa.pub и id_dsa.pub, это значит, что ключи уже есть, и этап с генерированием ключей можно пропустить. Можно, впрочем, удалить эти файлы при помощи команды rm id* и сгенерировать новые ключи.

Генерация новых SSH-ключей

Чтобы сгенерировать новые SSH-ключи, введите следующую команду (при этом имя хоста должно выглядеть по принципу <ВАШЕИМЯ>@<ВАШДЕВАЙС>; в нашем случае это eben@pi):

ssh-keygen -t rsa -C eben@pi

Кроме того, если достаточно места, имя хоста можно сделать более наглядным, но при этом его нужно поместить в кавычки. К примеру, так —

ssh-keygen -t rsa -C "Raspberry Pi #123"

После введения этой команды вас спросят, в каком месте сохранить ключ. Полагаем, его лучше сохранить в локации по умолчанию (/home/pi/.ssh/id_rsa), и для этого нужно просто нажать  ↵ Enter .

Кроме того, вас попросят ввести парольную фразу. Это дополнительная мера безопасности, суть которой в том, что без парольной фразы ключ становится непригодным. То есть, если кто-то другой скопирует ваш ключ, то все равно не сможет получить доступ от вашего имени.

Если вы решили воспользоваться этой функцией, то введите парольную фразу и нажмите  ↵ Enter , а затем, когда вас попросят, впишите ее снова. Если вы не хотите использовать парольную фразу, просто оставьте это место пустым.

Теперь в директории .ssh, находящей в вашей домашней директории, должны появиться файлы id_rsa и id_rsa.pub:

ls ~/.ssh
authorized_keys  id_rsa  id_rsa.pub  known_hosts

Файл id_rsa — это ваш личный ключ. Храните его на компьютере.

Файл id_rsa.pub — это ваш публичный ключ, то есть хранящийся на устройстве, к которому вы хотите подключиться. При каждом подключении два этих ключа будут проверяться на соответствие друг другу, и подключение состоится лишь в том случае, если эта проверка пройдет успешно.

Чтобы взглянуть на то, как выглядит ваш публичный ключ, введите следующее:

cat ~/.ssh/id_rsa.pub

Он должен выглядеть примерно так:

ssh-rsa <ОЧЕНЬ ДЛИННАЯ СТРОКА ИЗ СЛУЧАЙНЫХ СИМВОЛОВ> eben@pi

Копирование публичного ключа на Raspberry Pi

Для этого нужно добавить публичный ключ в файл authorized_keys, находящийся на Pi. Делать это нужно через SSH, поэтому команда будет выглядеть следующим образом:

cat ~/.ssh/id_rsa.pub | ssh <ПОЛЬЗОВАТЕЛЬ>@<IP-АДРЕС> 'cat >> .ssh/authorized_keys'

По сути, это последний раз, когда вам нужно будет ввести свой пароль.

Теперь попробуйте команду

ssh <ПОЛЬЗОВАТЕЛЬ>@<IP-АДРЕС>

, после чего вам должен открыться доступ к Raspberry Pi, но на этот раз — безо всякого пароля.

Если вы увидите сообщение Agent admitted failure to sign using the key, то добавьте в агент для аутентификации (ssh-agent) свои RSA- и DSA-идентификаторы, что делается при помощи следующей команды:

ssh-add

Если это не сработало, удалите свои ключи при помощи команды

rm ~/.ssh/id*

и попробуйте заново.

Кроме того, файлы через SSH можно передавать и при помощи команды scp (безопасное копирование). Более подробно об этом можно прочесть тут.

См.также

Внешние ссылки