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

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

Linux

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

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

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

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

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

linux

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

linux

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

linux

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

linux

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

linux

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

linux

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

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

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

linux

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

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

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

chmod 400 /home/ovel/.ssh/authorized_keys

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

chown ovel:ovel /home/ovel -R

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

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

linux

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

PasswordAuthentication no
linux

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

service ssh restart

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

linux

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

linux

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

P.S.

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

P.P.S.

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

Теги

 

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

VMware — просадка производительности Linux на 70% после патча от Retbleed

Специалисты VMware опубликовали интересную статью. Если на хосте VMware ESXi на виртуальную машину Linux с ядром 5.18 накатить патч до версии 5.19, устраняющий уязвимость Retbleed, то производительность виртуальной машины просядет.

MultiFactor Ldap Adapter — установка на Linux

MultiFactor Ldap Adapter — LDAP proxy сервер, разработанный и поддерживаемый компанией Мультифактор для двухфакторной аутентификации пользователей в приложениях, использующих LDAP аутентификацию.

Теги