[ Пред. ] [ main ] [ След. ]

Сделать личный ssh-ключ

 

Технологически при создании нового ssh-ключа будут созданы два файла, которые и называются «ключами»:


Свой публичный ssh-ключ можно использовать на нескольких серверах и на GitHub одновременно, главное — сохранять в секрете приватный ключ, вероятно даже на флэшке, вероятно даже на флэшке, которая постоянно хранится внутри себя.


В погоне за безопасностью следует учитывать много факторов. Полагаться полностью на ssh-ключи при подключении вроде бы правильно. И при наличии ssh-ключей можно даже заходить на NAS под root через аутентификацией по ssh-ключу, запретив на стороне сервера логинить root по его паролю. Сила!


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


По-умолчанию


Однако это не обязательно. Файлы с ssh-ключами можно называть как угодно и положить куда угодно, например, в „/home/ssh_keys/nas/. Важно только прописать их в системе — эта операция называется «импорт».


Создать новый ssh-ключ


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


Выполнить:


ssh-keygen -t rsa -C ”ЕМАЙЛ


Как это читать


Выбран rsa


Их несколько:


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


при создании нового ключа обязателен. Можно указать и несуществующий, но лучше рабочий. По емайлу в будущем можно будет идентифицировать ключ.


предлагается сохранить в файл „∼/.ssh/id_rsa”. Можно поменять место хранения и даже название этого файла.


предлагается сохранить в файл „∼/.ssh/id_rsa.pub” Можно поменять место хранения и название файла.


Пароль, кагбэ, очень произвольного формата. Вот это подойдёт полностью:


Mother washed window frame for 33 days and#$%&̂ nights long in Hong Kong”.


Можно оставить его пустым.


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


Если пароль для ключа задан, то при каждом подключении через данный ключ ВСЕГДА будет происходить запрос «пароля». В каких-то случаях это повышает безопасность, в других раздражает.


В будущем passphrase для существующих ключей можно изменять/обновлять. Но его невозможно восстановить в случае утери, придётся создать новый ключ.


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


Проверить созданный ключ


Для простоты предположим, что новый ключ создан с настройками по-умолчанию в файлы „id_rsa“.


  1. Вывести в консоль содержимое файла с публичным ключом:

cat ∼/.ssh/id_rsa.pub


Обычно это читаемый глазами текст, но бывают исключения.


  1. Вывести в консоль содержимое файла с личным ключом:

cat ∼/.ssh/id_rsa


Содержимое этого файла — машинный код, для глаз нечитаемый (без исключений).


Импортировать новый ssh-ключ в систему


Назовём это пропиской или регистрацией нового ключа в ssh-agent.


  1. Сперва надо убедиться в том, что сервис ssh-agent запущен:

eval `ssh-agent -s`


Пример ожидаемого ответа:


Agent pid 82671


  1. Поменять права на доступ к файлу с приватным ключом

chmod 700 ПОЛНЫЙ_ПУТЬ_К_ФАЙЛУ/ФАЙЛ_С_ПРИВАТНЫМ_КЛЮЧОМ


Иначе будет ошибка:


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0640 for 'ПОЛНЫЙ_ПУТЬ_К_ФАЙЛУ/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.


  1. Импортировать ключ в систему

  1. Указать путь к personal key

ssh-add ПОЛНЫЙ_ПУТЬ_К_ФАЙЛУ/ФАЙЛ_С_ПРИВАТНЫМ_КЛЮЧОМ


  1. Указать Passphrase ключа, если таковой был задействован.

Этот public key можно добавлять для аутентификации на другие ресурсы, например, в/на GitHub:
https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account


Проверить импорт ключа


Возможно (НЕ ФАКТ, но в Manjaro таки да), потребуется сперва перейти в режим работы с ssh в отдельном процессе:


ssh-agent /bin/sh


  1. Запросить список зарегистрированных в системе ключей в кратком формате (его всегда достаточно):

ssh-add -l


Пример ожидаемого ответа:


«3072 SHA256:YyaZeTckxJHbwiuew98098yeikgjw7f/Sbdw+LJFejbfke user_email (RSA)»


Если ssh-ключей в системе нет, ответ будет «The agent has no identities». Возможно, надо полностью перезагрузить сервер.


То же самое в расширенном формате


ssh-add -L


Next step: Подключиться к NAS по ssh