Raspberry Pi:Настройка/Удалённый доступ/SSH/Беспарольный SSH-доступ
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
Беспарольный 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 (безопасное копирование). Более подробно об этом можно прочесть тут.