Как вычислить отпечаток ключа 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-ключа.
Содержание
- Базовые команды для вычисления отпечатков ключей
- Различные алгоритмы хеширования для отпечатков
- Проверка SSH-ключей, специфичная для GitHub
- Устранение неполадок и соображения безопасности
- Полный пошаговый процесс
Базовые команды для вычисления отпечатков ключей
Основная команда для вычисления отпечатков ключей RSA в Linux — ssh-keygen. Вот основные варианты использования:
Для отпечатка открытого ключа
ssh-keygen -lf ~/.ssh/id_rsa.pub
Эта команда отобразит отпечаток вашего открытого ключа в формате:
2048 SHA256:z96jtEGIqfLoaq1INIBFI/3K2M+f9xZUyupsm3itgvI no comment (RSA)
Для отпечатка закрытого ключа
ssh-keygen -l -f ~/.ssh/id_rsa
Обе команды работают аналогично, но первая обычно безопаснее, так как вы работаете с файлом открытого ключа.
Альтернативные расположения ключей
Если ваш ключ хранится в другом месте, просто измените путь:
ssh-keygen -lf /path/to/your/public_key.pub
Различные алгоритмы хеширования для отпечатков
SSH поддерживает несколько алгоритмов хеширования для генерации отпечатков. Хотя SHA256 сейчас является стандартом, некоторые системы все еще могут использовать MD5.
Отпечаток SHA256 (Рекомендуется)
ssh-keygen -l -E sha256 -f ~/.ssh/id_rsa.pub
Отпечаток MD5 (Устаревший)
ssh-keygen -l -E md5 -f ~/.ssh/id_rsa.pub
Получение всех отпечатков одновременно
Вы можете сгенерировать как отпечатки MD5, так и SHA256:
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: Получите локальный отпечаток вашего ключа
ssh-keygen -lf ~/.ssh/id_rsa.pub
Шаг 2: Сравните с отображением GitHub
GitHub покажет вам отпечаток в интерфейсе аудита. Согласно документации GitHub, вы должны увидеть что-то вроде:
SHA256:jP0pfKJ9OAXt2F+LM7j3+BMalQ/2Koihl5eH/kli6A4
Шаг 3: Альтернативный метод проверки
Если вам нужно проверить удаленный ключ хоста (как у GitHub), вы можете использовать:
ssh-keyscan github.com | ssh-keygen -lvf -
Это покажет вам фактические ключи хоста, которые использует GitHub, которые вы затем можете проверить против опубликованных отпечатков GitHub.
Шаг 4: Добавьте доверенные ключи в known_hosts
Чтобы избежать ручной проверки в будущем, добавьте доверенные ключи GitHub в ваш файл ~/.ssh/known_hosts:
ssh-keyscan -H github.com >> ~/.ssh/known_hosts
Устранение неполадок и соображения безопасности
Распространенные проблемы
-
Ключ не найден: Если вы получаете ошибку “No such file or directory”, ваш ключ может находиться в другом месте. Используйте
find ~/.ssh -name "*.pub", чтобы его найти. -
Различные алгоритмы хеширования: Если ваша система показывает MD5, а GitHub — SHA256, используйте флаг
-Eдля указания алгоритма. -
Несколько ключей: Если у вас несколько SSH-ключей, вам нужно вычислить отпечатки для каждого из них, который вы используете с GitHub.
Лучшие практики безопасности
- Проверяйте перед принятием: Никогда не слепо принимайте SSH-отпечатки. Всегда проверяйте, что они совпадают с официальным источником.
- Регулярные аудиты: Периодически проверяйте ваши SSH-ключи и их отпечатки, особенно после инцидентов безопасности.
- Удаляйте неиспользуемые ключи: Удаляйте старые ключи, которые вы больше не используете, чтобы уменьшить поверхность атаки.
Защита от атак “человек посередине”
Проверка SSH-отпечатка ключа помогает защититься от атак “человек посередине”, гарантируя, что вы подключаетесь к легитимным серверам GitHub, а не к самозванцу. Как объясняется на Server Fault, это реализует схему “доверяй при первом использовании”.
Полный пошаговый процесс
Вот полный рабочий процесс для аудита SSH-ключа в Linux:
-
Найдите файлы ваших SSH-ключей
bashfind ~/.ssh -name "*.pub" -
Вычислите отпечаток вашего ключа
bashssh-keygen -lf ~/.ssh/id_rsa.pub
-
Сравните с интерфейсом аудита GitHub
- Перейдите в GitHub → Settings → SSH and GPG keys
- Найдите уведомление об аудите
- Убедитесь, что отпечатки совпадают
-
Проверьте подключение
bashssh -T git@github.com
-
Очистите known_hosts (Опционально)
Если у вас есть старые или неправильные записи:bashssh-keygen -R github.com ssh-keyscan -H github.com >> ~/.ssh/known_hosts
-
Задокументируйте информацию о вашем ключе
Сохраните запись об отпечатках ваших ключей для будущих ссылок и аудитов.
Помните, что GitHub по умолчанию использует отпечатки SHA256, поэтому убедитесь, что вы сравниваете правильный формат хеширования. Если вы столкнетесь с какими-либо проблемами в процессе аудита, документация GitHub предоставляет дополнительные указания по проверке и эффективному управлению вашими SSH-ключами.
Источники
- Вычисление отпечатка ключа RSA - Stack Overflow
- Проверка SSH-отпечатков открытых ключей - PHComp
- Что такое SSH-отпечаток ключа и как он генерируется? - Super User
- Получение отпечатка ключа SSH-сервера - Unix & Linux Stack Exchange
- Проверка отпечатка вашей пары ключей - Amazon EC2
- SSH-отпечаток: Получение отпечатка ключа SSH RSA - ShellHacks
- SSH-отпечатки — SSH-MITM
- Как сгенерировать SSH-отпечаток ключа в Linux? - GeeksforGeeks
- Как: Проверка SSH-отпечатков ключей - Unix Tutorial
- SSH-отпечатки ключей GitHub - Документация GitHub
- Проверка ваших SSH-ключей - Документация GitHub
- Проверка SSH-отпечатка открытого ключа GitHub - protodave
- Как проверка хоста SSH для github.com предоставляет какую-либо ценность? - Server Fault
- просмотр SSH-отпечатка вашего открытого ключа; сравните это с тем, что перечислено в Github - GitHub Gist
Заключение
Вычисление отпечатка вашего ключа RSA для аудита SSH-ключа в Linux является простым с помощью команды ssh-keygen. Ключевые шаги:
- Используйте
ssh-keygen -lf ~/.ssh/id_rsa.pubдля получения отпечатка вашего открытого ключа - Сравните это с тем, что показывает GitHub в интерфейсе аудита
- Убедитесь, что алгоритм хеширования совпадает (GitHub обычно использует SHA256)
- Регулярно проводите аудит ваших SSH-ключей для поддержания безопасности
Для GitHub всегда проверяйте, что отпечаток, показанный в интерфейсе аудита, точно совпадает с вашим локально вычисленным отпечатком. Этот простой шаг проверки защищает вас от потенциальных атак “человек посередине” и обеспечивает безопасность вашего аккаунта GitHub и репозиториев.
Если у вас несколько SSH-ключей, повторите процесс для каждого ключа, который вы используете с GitHub. Помните, чтобы поддерживать ваш файл ~/.ssh/known_hosts в актуальном состоянии и удалять любые устаревшие записи для поддержания чистой и безопасной SSH-конфигурации.