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

SSH — генерация ключа аутентификации в Linux

SSH

Зачем нужна аутентификацию по ключу SSH?

  • Во-первых, аутентификация по SSH-ключу сложнее требует больше информации
  • Пароль можно подобрать брутфорсом
  • Для аутентификации  по ключу можно (и нужно!) также задать пароль
  • Если у вас украдут компьютер с приватным ключом, то достаточно на сервере почистить authorized_keys

Если вы где-то в облаке приобрели себе сервер и получили root с паролем, заведите себе отдельного пользователя с правами sudo, разрешите ему ходить по SSH-ключу и закройте вход на сервер по паролю. Под root вы всегда сможете войти через KVM консоль сервера.

Простая заметка по генерации приватного ключа в Linux.

Пример генерации ключа:

ssh-keygen -t ed25519

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

ssh

Получаем приватный ключ /root/.ssh/id_ed25519 в формате:

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABBBABac8P
mbqkMuzrdSn3CEAAAAGAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIHOcR9G9CLGt28sh
G40WfOPKB1g1mGQTqxkpncSs17ckAAAAkJn5NBLCpuc/+xwP5kj6CmxwgRq9cqSniSm+f6
RYh5x9cqZadsba9DSQBKzSKCo+0nsdOLwCa3WBpdF42ZnH4YEeaVb7tqlzwht+V08A7FF1
jBhufNOMTldhf28mYBgiCf9JmyJ7nMErKHedDDXG2QPRKZ6RwMaeZMLtSzpsW6M23QjDa1
JxZqioGxnU21ggjQ==
-----END OPENSSH PRIVATE KEY-----

Никому его не показываем и не отдаём.

И получаем публичный ключ /root/.ssh/id_ed25519.pub в формате:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHOcR9G9CLGt28shG40WfOPKB1g1mGQTqxkpncSs17ck root@ProBook

Самый простой способ добавить публичный ключ на удалённый сервер — использовать команду ssh-copy-id.

ssh-copy-id user@remote_host

После этого вы сможете подключаться по SSH с использованием парольной фразы от ключа.

ssh user@remote_host

Если нужно отправить публичный ключ по почте, копируем его, имя пользователя для удобства меняем на более информативное (оно не влияет на подключение, это комментарий), или стираем:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHOcR9G9CLGt28shG40WfOPKB1g1mGQTqxkpncSs17ck user@remote_host

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

Создаёт папку и файл для публичного ключа.

mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys

Редактирует authorized_keys любимым редактором и добавляет публичный ключ.

Устанавливает правильные привилегии:

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

Если вдруг файл от рута, меняем владельца на нужного пользователя (в примере ovel):

chown -R ovel:ovel /home/ovel/.ssh
 

Похожие материалы

Red Hat Enterprise Linux — поддержка работы сайтов с российскими сертификатами

Многие учреждения начинают переходить на использование российских сертификатов. Такие сертификаты не поддерживаются по умолчанию в Linux.

UFW — начальная настройка в Ubuntu 22.04

С появлением у вас сервера Ubuntu стоит задуматься об информационной безопасности. В принципе, о ней всегда стоит задумываться. В данном случае речь пойдёт об обеспечении сетевой безопасности и защиты внутренних процессов от внешней среды.

Теги