Другое

Как вычислить отпечаток ключа RSA для аудита SSH

Узнайте, как вычислять отпечатки ключей RSA для аудита SSH в Linux с помощью команд ssh-keygen. Сравните с процессом верификации GitHub и обеспечьте безопасность ваших SSH-соединений.

Как вычислить отпечаток ключа RSA для аудита SSH-ключей в Linux?

Мне нужно провести аудит SSH-ключей для GitHub, но я не уверен, как найти отпечаток моего ключа RSA. Ранее я сгенерировал SSH-ключ в Linux, следуя руководству. Какую команду следует использовать для получения отпечатка моего текущего ключа RSA?

Чтобы вычислить отпечаток вашего ключа RSA для аудита SSH-ключа в Linux, используйте команду ssh-keygen с опцией -l для отображения отпечатка и -f для указания файла вашего ключа. Например, команда ssh-keygen -lf ~/.ssh/id_rsa.pub покажет отпечаток SHA256 вашего открытого ключа, который вы затем можете сравнить с тем, что отображает GitHub в процессе аудита SSH-ключа.

Содержание

Базовые команды для вычисления отпечатков ключей

Основная команда для вычисления отпечатков ключей RSA в Linux — ssh-keygen. Вот основные варианты использования:

Для отпечатка открытого ключа

bash
ssh-keygen -lf ~/.ssh/id_rsa.pub

Эта команда отобразит отпечаток вашего открытого ключа в формате:

2048 SHA256:z96jtEGIqfLoaq1INIBFI/3K2M+f9xZUyupsm3itgvI no comment (RSA)

Для отпечатка закрытого ключа

bash
ssh-keygen -l -f ~/.ssh/id_rsa

Обе команды работают аналогично, но первая обычно безопаснее, так как вы работаете с файлом открытого ключа.

Альтернативные расположения ключей

Если ваш ключ хранится в другом месте, просто измените путь:

bash
ssh-keygen -lf /path/to/your/public_key.pub

Различные алгоритмы хеширования для отпечатков

SSH поддерживает несколько алгоритмов хеширования для генерации отпечатков. Хотя SHA256 сейчас является стандартом, некоторые системы все еще могут использовать MD5.

Отпечаток SHA256 (Рекомендуется)

bash
ssh-keygen -l -E sha256 -f ~/.ssh/id_rsa.pub

Отпечаток MD5 (Устаревший)

bash
ssh-keygen -l -E md5 -f ~/.ssh/id_rsa.pub

Получение всех отпечатков одновременно

Вы можете сгенерировать как отпечатки MD5, так и SHA256:

bash
echo "SHA256:" && ssh-keygen -l -E sha256 -f ~/.ssh/id_rsa.pub
echo "MD5:" && ssh-keygen -l -E md5 -f ~/.ssh/id_rsa.pub

Примечание: GitHub в основном использует отпечатки SHA256 для процесса проверки SSH-ключей, поэтому при проведении аудита сосредоточьтесь на этом формате.

Проверка SSH-ключей, специфичная для GitHub

Когда GitHub инициирует аудит SSH-ключа (обычно из-за необычной активности), вам необходимо убедиться, что локальный отпечаток вашего ключа совпадает с тем, что отображает GitHub в интерфейсе аудита.

Шаг 1: Получите локальный отпечаток вашего ключа

bash
ssh-keygen -lf ~/.ssh/id_rsa.pub

Шаг 2: Сравните с отображением GitHub

GitHub покажет вам отпечаток в интерфейсе аудита. Согласно документации GitHub, вы должны увидеть что-то вроде:

SHA256:jP0pfKJ9OAXt2F+LM7j3+BMalQ/2Koihl5eH/kli6A4

Шаг 3: Альтернативный метод проверки

Если вам нужно проверить удаленный ключ хоста (как у GitHub), вы можете использовать:

bash
ssh-keyscan github.com | ssh-keygen -lvf -

Это покажет вам фактические ключи хоста, которые использует GitHub, которые вы затем можете проверить против опубликованных отпечатков GitHub.

Шаг 4: Добавьте доверенные ключи в known_hosts

Чтобы избежать ручной проверки в будущем, добавьте доверенные ключи GitHub в ваш файл ~/.ssh/known_hosts:

bash
ssh-keyscan -H github.com >> ~/.ssh/known_hosts

Устранение неполадок и соображения безопасности

Распространенные проблемы

  1. Ключ не найден: Если вы получаете ошибку “No such file or directory”, ваш ключ может находиться в другом месте. Используйте find ~/.ssh -name "*.pub", чтобы его найти.

  2. Различные алгоритмы хеширования: Если ваша система показывает MD5, а GitHub — SHA256, используйте флаг -E для указания алгоритма.

  3. Несколько ключей: Если у вас несколько SSH-ключей, вам нужно вычислить отпечатки для каждого из них, который вы используете с GitHub.

Лучшие практики безопасности

  • Проверяйте перед принятием: Никогда не слепо принимайте SSH-отпечатки. Всегда проверяйте, что они совпадают с официальным источником.
  • Регулярные аудиты: Периодически проверяйте ваши SSH-ключи и их отпечатки, особенно после инцидентов безопасности.
  • Удаляйте неиспользуемые ключи: Удаляйте старые ключи, которые вы больше не используете, чтобы уменьшить поверхность атаки.

Защита от атак “человек посередине”

Проверка SSH-отпечатка ключа помогает защититься от атак “человек посередине”, гарантируя, что вы подключаетесь к легитимным серверам GitHub, а не к самозванцу. Как объясняется на Server Fault, это реализует схему “доверяй при первом использовании”.

Полный пошаговый процесс

Вот полный рабочий процесс для аудита SSH-ключа в Linux:

  1. Найдите файлы ваших SSH-ключей

    bash
    find ~/.ssh -name "*.pub"
    
  2. Вычислите отпечаток вашего ключа

    bash
    ssh-keygen -lf ~/.ssh/id_rsa.pub
    
  3. Сравните с интерфейсом аудита GitHub

    • Перейдите в GitHub → Settings → SSH and GPG keys
    • Найдите уведомление об аудите
    • Убедитесь, что отпечатки совпадают
  4. Проверьте подключение

    bash
    ssh -T git@github.com
    
  5. Очистите known_hosts (Опционально)
    Если у вас есть старые или неправильные записи:

    bash
    ssh-keygen -R github.com
    ssh-keyscan -H github.com >> ~/.ssh/known_hosts
    
  6. Задокументируйте информацию о вашем ключе
    Сохраните запись об отпечатках ваших ключей для будущих ссылок и аудитов.

Помните, что GitHub по умолчанию использует отпечатки SHA256, поэтому убедитесь, что вы сравниваете правильный формат хеширования. Если вы столкнетесь с какими-либо проблемами в процессе аудита, документация GitHub предоставляет дополнительные указания по проверке и эффективному управлению вашими SSH-ключами.

Источники

  1. Вычисление отпечатка ключа RSA - Stack Overflow
  2. Проверка SSH-отпечатков открытых ключей - PHComp
  3. Что такое SSH-отпечаток ключа и как он генерируется? - Super User
  4. Получение отпечатка ключа SSH-сервера - Unix & Linux Stack Exchange
  5. Проверка отпечатка вашей пары ключей - Amazon EC2
  6. SSH-отпечаток: Получение отпечатка ключа SSH RSA - ShellHacks
  7. SSH-отпечатки — SSH-MITM
  8. Как сгенерировать SSH-отпечаток ключа в Linux? - GeeksforGeeks
  9. Как: Проверка SSH-отпечатков ключей - Unix Tutorial
  10. SSH-отпечатки ключей GitHub - Документация GitHub
  11. Проверка ваших SSH-ключей - Документация GitHub
  12. Проверка SSH-отпечатка открытого ключа GitHub - protodave
  13. Как проверка хоста SSH для github.com предоставляет какую-либо ценность? - Server Fault
  14. просмотр SSH-отпечатка вашего открытого ключа; сравните это с тем, что перечислено в Github - GitHub Gist

Заключение

Вычисление отпечатка вашего ключа RSA для аудита SSH-ключа в Linux является простым с помощью команды ssh-keygen. Ключевые шаги:

  1. Используйте ssh-keygen -lf ~/.ssh/id_rsa.pub для получения отпечатка вашего открытого ключа
  2. Сравните это с тем, что показывает GitHub в интерфейсе аудита
  3. Убедитесь, что алгоритм хеширования совпадает (GitHub обычно использует SHA256)
  4. Регулярно проводите аудит ваших SSH-ключей для поддержания безопасности

Для GitHub всегда проверяйте, что отпечаток, показанный в интерфейсе аудита, точно совпадает с вашим локально вычисленным отпечатком. Этот простой шаг проверки защищает вас от потенциальных атак “человек посередине” и обеспечивает безопасность вашего аккаунта GitHub и репозиториев.

Если у вас несколько SSH-ключей, повторите процесс для каждого ключа, который вы используете с GitHub. Помните, чтобы поддерживать ваш файл ~/.ssh/known_hosts в актуальном состоянии и удалять любые устаревшие записи для поддержания чистой и безопасной SSH-конфигурации.

Авторы
Проверено модерацией
Модерация