Настройка авторизации по ключу в SSH в Linux
Традиционно для авторизации на сервере по протоколу SSH используются логин и пароль. При доступе к серверам в рамках ЛВС или с хоста виртуализации к виртуальной машине, это не является проблемой.
При удаленном доступе возникают угрозы безопасности. Сервер с открытым доступом по SSH потенциально может быть взломан с помощью перебора паролей, особенно если для доступа используется пользователь root.
Чтобы избежать подобных угроз была создана авторизация с помощью ключей шифрования.
Сегодня мы настроим авторизацию с помощью ключей в SSH в Alt Linux. Настройка производится аналогично и на других дистрибутивах.
Как это работает?
Для авторизации создается пара ключей – открытый – он сохраняется на сервере и закрытый, он должен храниться у пользователя.
С помощью открытого ключа можно производить шифрование информации, а вот расшифровать её можно только при помощи закрытого ключа пользователя.
Таким образом процесс авторизации оказывается полностью скрыт от постороннего наблюдателя, ведь сервер при инициализации сеанса отправляет всю информацию уже в зашифрованном виде!
Установка Putty в Windows 10
Перейдем на страницу загрузки:
Нажмем
Download PuTTY
И скачаем установщик, на момент написания статьи это файл:
https://the.earth.li/~sgtatham/putty/latest/w64/putty-64bit-0.78-installer.msi
Запустите установщик и установите все компоненты, в установке нет ничего сложного.
Создание приватного ключа для Putty
Запустим программу Puttygen
Нажмем EdDSA и потом Generate
Перемещайте мышку внутри окна чтобы сгенерировать ключ!
Обязательно вводим пароль в поля Key passphrase и Confirm passphrase. Данный пароль нам нужно будет вводить каждый раз, когда мы будем подключаться с помощью сертификата.
Можно не использовать пароль, например если вы устанавливаете соединение с виртуальной машиной на своем ПК или в ЛВС, но при удаленном доступе установка пароля обязательна.
Закрытый ключ в последующем будет храниться на вашем ПК в виде обычного и злоумышленнику будет достаточно просто скопировать не защищенный паролем файл, чтобы получить доступ к вашему серверу!
В также можете изменить комментарий для ключа, в результате у нас все поля будут заполнены.
Нажмем Save Private Key и укажем любую папку для сохранения ключа:
Обратите внимание что ключ сохраняется в специальном формате 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
Слева откроем Connection -> SSh -> Auth -> Credentials
Укажем путь к .ppk файлу, созданному с помощью PuttyGen:
Так же вы можете зайти в категорию Connection -> Data и указать имя пользователя, тогда всё что вам останется это ввести пароль для приватного ключа:
Снова вернемся на самый верх в категорию 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 для работы с нашем приватным ключом создав новую сессию;
Вошли на сервер используя ключ.
Добавить комментарий