Как сделать ssh авторизацию без пароля с помощью RSA ключей в Linux

Обновлено 22.07.2021

ssh logoДобрый день! Уважаемые читатели и гости одного из крупнейших IT блогов рунета Pyatilistnik.org. В прошлый раз мы с вами установили CentOS 8 и произвели его настройку. Идем далее, сегодня я хочу поговорить на тему как сделать для ssh авторизацию без пароля с помощью RSA ключей, согласитесь, что это более безопасно и сильно упрощает жизнь системным администраторам, особенно когда у вас много разных серверов. Давайте приступать от слов к делу.

RSA (Rivest-Shamir-Adleman) ключ - это асимметричный криптографический алгоритм, который используется для шифрования и подписи данных. Он основан на математической задаче факторизации больших чисел.

Генерация RSA ключа может быть выполнена в различных системах, включая операционные системы Windows, Linux и macOS, а также языки программирования, такие как Java и Python. RSA ключи обладают следующими свойствами и применениями:

  1. Шифрование данных: Открытый ключ RSA используется для шифрования данных, которые могут быть расшифрованы только с помощью соответствующего закрытого ключа. Это обеспечивает конфиденциальность передаваемых сообщений.
  2. Цифровая подпись: Закрытый ключ RSA используется для создания цифровой подписи, которая позволяет проверить подлинность и целостность данных. Подпись создается путем хеширования данных и шифрования хеш-значения закрытым ключом.
  3. Аутентификация: RSA ключи могут использоваться для аутентификации пользователей или систем. Например, сервер может использовать закрытый ключ для создания токена аутентификации, который может быть проверен с помощью открытого ключа.
  4. Обмен ключами: RSA ключи могут использоваться для безопасного обмена симметричными ключами, которые затем используются для шифрования данных с использованием более эффективных алгоритмов, таких как AES.

Инструкция по генерации RSA ключей в Linux

  • Генерируем rsa ключ на первом сервере.

$ ssh-keygen -t rsa

  • Появится запрос на имя файла, куда сохранить ключ, если оставить по умолчанию то пароль сохранится в /home/username/.ssh/id_rsa. Далее запросит кодовую фразу, если вы хотите использовать подключение по ssh из скрипта. то нужно оставить это поле пустым, что бы не запрашивало, так как из скрипта невозможно ввести эту парольную фразу. Для генерации RSA ключей в CentOS вы можете использовать ту же команду ssh-keygen

После этого будет сгенерирована пара ключей RSA: закрытый ключ (id_rsa) и открытый ключ (id_rsa.pub). Закрытый ключ должен быть хранится в безопасном месте, а открытый ключ может быть распространен или использован для аутентификации на удаленных серверах.

  • Далее копирование файла с ключом на второй сервер.

$ ssh-copy-id -i ~/.ssh/id_rsa.pub username@192.168.1.145

  • Запросит подтверждения, вводим yes. Далее запросит пароль второго сервера, вводим его. Проверяем доступность без пароля.

$ ssh username@192.168.1.145

И видим, что мы без какого-либо пароля залогинились на второй сервер. Повторяем аналогичные действия для второго сервера и радуемся безпарольному доступу между серверами. На этом  у меня все, с вами был Иван Сёмин, автор и создатель IT портала Pyatilistnik.org.

Автор - Сёмин Иван

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *