Понимание различных типов SSH ключей

Источник: «Understanding the different types of SSH Keys»
Ключи Secure Shell (SSH) неотъемлемая часть современной защиты серверов и сетей. Они позволяют аутентифицировать пользователей и устройства, не полагаясь на пароли, уязвимые для попыток взлома. В статье рассмотрим различные типы ключей SSH и способы их эффективного использования.

Что такое SSH ключи

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

Типы SSH ключей

Типы криптографических SSH ключей включают:

RSA SSH ключи

RSA — один из самых распространённых и широко используемых типов ключей. Ключи RSA используют алгоритм RSA для шифрования и считаются безопасными, рекомендуемый минимальный размер ключа — 2048 бит.

Пример публичного ключа RSA:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCba21UHE+VbDTpmYYFZUOV+OQ8AngOCdjROsPC0KiEfMvEaEM3NQl58u6QL7G7QsErKViiNPm9OTFo6HF5JijfWzK7haHFuRMEsgI4VwIYyhvqlJDfw/wt0AiVvSmoMfEQn1p1aiaO4V/RJSE3Vw/uz2bxiT22uSkSqOyShyfYE6dMHnuoBkzr4jvSifT+INmbv6Nyo4+AAMCZtYeHLrsFeSTjLL9jMPjI4ZkVdlw2n3Xn9NbltF3/8Ao8dQfElqw+LIQWqU0oFHYNIP4ttfl5ObMKHaKSvBMyNruZR0El/ZsrcHLkAHRCLj07KRQJ81l5CUTPtQ02P1Eamz/nT4I3 root@localhost

ECDSA SSH ключи

Ключи ECDSA — ещё один популярный вариант. Они обеспечивают безопасность, аналогичную ключам RSA, но имеют меньший размер ключа, что делает их более эффективными для некоторых случаев использования. Рекомендуемый минимальный размер ключа для ECDSA — 256 бит.

Пример публичного ключа ECDSA:

ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCE9Uli8bGnD4hOWdeo5KKQJ/P/vOazI4MgqJK54w37emP2JwOAOdMmXuwpxbKng3KZz27mz+nKWIlXJ3rzSGMo= root@localhost

Ed25519 SSH ключи

Ed25519 — новый, высокозащищенный тип ключа, превосходящий по производительности и безопасности RSA и ECDSA. Ed25519 основан на алгоритме EdDSA и использует 256-битный размер ключа.

Пример публичного ключа Ed25519:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK0wmN/Cr3JXqmLW7u+g9pTh+wyqDHpSQEIQczXkVx9q root@localhost

Варианты использования различных типов SSH ключей

Управление SSH ключами

Генерация SSH ключей

Ключи можно генерировать с помощью команды ssh-keygen. Например, чтобы создать ключ Ed25519:

ssh-keygen -t ed25519 -C "ваш_email@example.ru"

В каталоге ~/.ssh будут сгенерированы для файла ключа с использованием алгоритма ECDSA: id_ecdsa — приватный ключ и id_ed25519.pub — публичный ключ.

Передача публичных SSH ключей

После генерации ключа необходимо передать публичный ключ серверам или сервисам, к которым необходимо получить доступ. Обычно это делается путём копирования содержимого публичного ключа и вставки его в файл ~/.ssh/authorized_keys на удалённой системе. Или через программу ssh-copy-id входящую в пакет OpenSSH:

ssh-copy-id username@remote_host

Если ssh-copy-id недоступен или не работает можно сделать следующее. На удалённом сервере создайте каталог ~/.ssh, файл ~/.ssh/authorized_keys и установить права доступа:

mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys

Затем скопируйте публичный ключ с локального хоста на удалённый (в примере передаётся публичный ключ RSA, имена файлов по умолчанию для других типов ключей указаны выше):

cat ~/.ssh/id_rsa.pub | ssh username@remote_host "cat >> ~/.ssh/authorized_keys"

Если у вас Windows используйте следующую команду PowerShell:

type $env:USERPROFILE\.ssh\id_rsa.pub | ssh username@remote_host "cat >> ~/.ssh/authorized_keys"

Проверьте подключение и авторизацию на удалённом сервере по SSH ключу.

Защита приватных SSH ключей

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

Заключение

Понимание различных типов SSH ключей и условий их использования необходимо для обеспечения безопасности серверов и сетевой инфраструктуры. Начните с ключей RSA как универсального варианта и рассмотрите ключи ECDSA или Ed25519 для более специфических случаев или сред с высоким уровнем безопасности.

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

Комментарии


Дополнительные материалы

Предыдущая Статья

Руководство по типам данных SQLite

Следующая Статья

Доступ к связанным с маршрутом моделям в запросах формы Laravel с #[RouteParameter]