Найти в Дзене

Linux — аутентификация по SSH-ключу

Оглавление

На сервере Debian включим аутентификацию по ключу SSH. Зачем это нужно?

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

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

Как создать ключи SSH в Windows?

Как это делать в Linux вы нагуглите, я сегодня буду это делать в Windows. Воспользуюсь утилитой puttygen.exe от авторов PuTTY. Скачиваем и запускаем утилиту.

-2

Жмём Generate, предварительно установив параметры ключа, RSA 2048 подойдёт.

-3

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

-4

Ключ сгенерирован. Задаём парольную фразу в Key passphrase и повторяем её в Confirm passphrase. Конечно, можно и не задавать парольную фразу, но это не рекомендуется с точки зрения безопасности. Сохраняем приватный ключ себе на компьютер кнопкой Save private key в виде файла с расширением PPK. На всякий случай можете сохранить публичный ключ кнопкой Save public key, но он нам не пригодится, т.к. нам нужен ключ в другом формате, а именно тот, что отображается в блоке Key. Копируем его себе через буфер обмена.

-5

Вот такой публичный ключ нам нужен.

-6

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

-7

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

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

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

-8

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

Далее работаем под рутом.

Установим правильные привилегии (в примере пользователь ovel):

chmod 400 /home/ovel/.ssh/authorized_keys

Если вдруг вы создали файл от рута, меняем владельца:

chown ovel:ovel /home/ovel -R

Отключить вход по паролю

Редактируем /etc/ssh/sshd_config.

-9

Устанавливаем параметр:

PasswordAuthentication no
-10

Перезагружаем службу:

service ssh restart

Пробуем подключиться к серверу по паролю:

-11

Не получается.

-12

Теперь можно войти по ключу, для этого в PuTTY в настройках Connection → SSH → Auth → Credentials → Private key file for authentication выбираем ранее сохранённый файл с приватным ключом (расширение PPK).

P.S.

Не завершайте текущий сеанс SSH в процессе применения настроек. Протестируйте что вы не потеряли доступ к серверу в отдельном окне PuTTy. Да-да, мы сегодня работаем из Windows!

P.P.S.

Чтобы удалить один из ключей, просто удалите его из authorized_keys.

Источник:

Linux — аутентификация по SSH-ключу | internet-lab.ru

💰 Поддержать проект

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.