Пятница, 10.11.2023 11:00

Настройка авторизации по ключу в SSH в Linux

Настройка авторизации по ключу в SSH в Linux

Традиционно для авторизации на сервере по протоколу SSH используются логин и пароль. При доступе к серверам в рамках ЛВС или с хоста виртуализации к виртуальной машине, это не является проблемой.

При удаленном доступе возникают угрозы безопасности. Сервер с открытым доступом по SSH потенциально может быть взломан с помощью перебора паролей, особенно если для доступа используется пользователь root.

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

Сегодня мы настроим авторизацию с помощью ключей в SSH в Alt Linux. Настройка производится аналогично и на других дистрибутивах.

Как это работает?

Для авторизации создается пара ключей – открытый – он сохраняется на сервере и закрытый, он должен храниться у пользователя.

С помощью открытого ключа можно производить шифрование информации, а вот расшифровать её можно только при помощи закрытого ключа пользователя.

Таким образом процесс авторизации оказывается полностью скрыт от постороннего наблюдателя, ведь сервер при инициализации сеанса отправляет всю информацию уже в зашифрованном виде!

Установка Putty в Windows 10

Перейдем на страницу загрузки:

https://www.putty.org/

Нажмем

Download PuTTY

И скачаем установщик, на момент написания статьи это файл:

https://the.earth.li/~sgtatham/putty/latest/w64/putty-64bit-0.78-installer.msi

Запустите установщик и установите все компоненты, в установке нет ничего сложного.

Создание приватного ключа для Putty

Запустим программу Puttygen

2023-01-17_14-36-49.webp

Нажмем EdDSA и потом Generate

2023-01-17_14-36-59.webp

Перемещайте мышку внутри окна чтобы сгенерировать ключ!

2023-01-17_14-36-59.webp

Обязательно вводим пароль в поля Key passphrase и Confirm passphrase. Данный пароль нам нужно будет вводить каждый раз, когда мы будем подключаться с помощью сертификата.

Можно не использовать пароль, например если вы устанавливаете соединение с виртуальной машиной на своем ПК или в ЛВС, но при удаленном доступе установка пароля обязательна.

Закрытый ключ в последующем будет храниться на вашем ПК в виде обычного и злоумышленнику будет достаточно просто скопировать не защищенный паролем файл, чтобы получить доступ к вашему серверу!

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

Нажмем Save Private Key и укажем любую папку для сохранения ключа:

2023-01-17_14-39-25.webp

Обратите внимание что ключ сохраняется в специальном формате Putty - .ppk!

Мы создали ключи для нашего сервера.

Настройка сервера Linux для удаленного доступа

Из окна PuttyGen скопируем все содержимое поля с публичным ключом в буфер обмена:

На сервере с операционной системой Linux выполним команду: 

echo ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINbx1mQExPY+fJ/z3RLcqnDSHxbGQf9gs75jSp8BPJIi Server-192.168.1.20 >> /home/user/.ssh/authorized_keys

Или просто вставив эту строку в конец файла /home/user/.ssh/authorized_keys

Где /home/user путь к папке пользователя!

Тем самым мы указываем, что данный ключ можно использовать для авторизации пользователя!

Создание сессии для авторизации через ключ

Давайте настроим Putty сохранив в списке сессий данные об Ip-адресе нашего сервера и пути до приватного ключа.

Запустим Putty заполним указанные на рисунке поля и нажмем Save

2023-01-17_14-49-56.webp

Слева откроем Connection -> SSh -> Auth -> Credentials

Укажем путь к .ppk файлу, созданному с помощью PuttyGen:

2023-01-17_14-52-24.webp

Так же вы можете зайти в категорию Connection -> Data и указать имя пользователя, тогда всё что вам останется это ввести пароль для приватного ключа:

2023-01-17_15-19-47.webp

Снова вернемся на самый верх в категорию Session и обязательно еще раз нажмем Save, чтобы сохранить настройки!

Нажмем Open введем имя пользователя, в моем случае это user

Будет выдан запрос: 

login as: user

Authenticating with public key "Server-192.168.1.20"

Passphrase for key "Server-192.168.1.20":

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

Last login: Tue Jan 17 03:47:29 2023 from 192.168.1.19

[user@host-38 ~]$

Вы успешно вошли на сервер!

Заключение

Сегодня мы рассмотрели настройку доступа к Linux серверу по протоколу SSH с использованием ключей:

Установили программу Putty в Windows 10;

Создали приватный и публичные ключи Ed25519 с помощью программы PuttyGen;

Сохранили приватный ключ на свой ПК и загрузили публичный ключ на сервер;

Настроили Putty для работы с нашем приватным ключом создав новую сессию;

Вошли на сервер используя ключ. 

Категория Linux
Теги Linux

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

Простой текст

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.
Просмотров: 325