Аутентификация SSH при помощи ключей

Когда администрируешь несколько unix хостов (и Raspberry сюда тоже относится) по ssh, через некоторое время хочется облегчить себе жизнь, не уменьшая безопасность, и перестать вводить пароль каждый раз при подключении к серверу. И такая возможность есть – можно перейти на использование ключей и производить аутентификацию именно по ним. Как это сделать? Очень просто и займет всего несколько минут.

В первую очередь необходимо сгенерировать свою пару ключей на своей рабочей станции или ноутбуке: приватный и публичный, если их у вас еще нет. По умолчанию в *nix системах ключи хранятся в директории .ssh в корне домашней папки пользователя. Проверить есть они там или нет, можно командой в консоли

cd ~ && ls -la .ssh

Если вы не видите файлов id_rsa и id_rsa.pub, а присутствует только known_hosts или вообще ничего нет – нужно будет их создать.

Для Linux, Unix и MacOS достаточно выполнить имеющуюся по умолчанию команду (для windows – ищите соответствующий исполняемый файл в директории вашего ssh клиента)

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):
Created directory '/home/username/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:nmKBn5EBXU6BhsT9TIiwH/7QD6E9tVBkA84MQElOTws username@AirStitchBook.local

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

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

Передать ключ на сервер можно простой командой
(замените только user и host на ваши, например pi@raspberry)

cat ~/.ssh/id_rsa.pub | ssh USER@HOST "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Вам потребуется последний раз ввести пароль, для того, что бы записать свой публичный ключ в разрешенные ключи на сервере и далее радоваться быстрому и при этом не менее безопасному подключению к серверу.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *