Это ключи, созданные с использованием разных алгоритмов шифрования. Вы можете выбрать использование разных форм шифрования при использовании SSH, что несколько похоже на возможность выбирать разные методы шифрования для WiFi (WPA2, WPA, WEP и т. Д.).
SSH использует шифрование с открытым ключом, то есть когда вы подключаетесь к SSH-серверу, он передает открытый ключ, который вы можете использовать для шифрования дополнительного трафика, отправляемого на этот сервер. Если сервер настроен на использование RSA, это будет ключ, сгенерированный алгоритмом RSA.
Ваш компьютер отправляет обратно свой собственный открытый ключ RSA из файла ключа, который вы указали в своем вопросе. Серверу нужен этот ключ, чтобы вернуться к вам и ответить.
Все три ключа существуют на вашем компьютере, потому что любой данный SSH-сервер, к которому вы подключаетесь, может быть настроен на использование любого из этих алгоритмов. Ваш компьютер отправит обратно уникальный ключ, соответствующий типу сервера, ваш ключ был сгенерирован на вашем компьютере по тому же алгоритму.
Вот некоторые дополнительные ресурсы:
/security/5096/rsa-vs-dsa-for-ssh-authentication-keys
http://en.wikipedia.org/wiki/Public-key_cryptography
http://en.wikipedia.org/wiki/RSA_(algorithm)
http://en.wikipedia.org/wiki/Digital_Signature_Algorithm
http://en.wikipedia.org/wiki/Elliptic_Curve_DSA
Вам все они нужны?
Нет, вашему ssh-серверу нужен только один, а клиенту нужно только поддерживать этот тип ключа для ssh-соединений.
RSA, DSA, ECDSA, EdDSA и Ed25519 все используются для цифровой подписи, но только RSA также может использоваться для шифрования.
RSA ( Rivest-Shamir-Adleman ) является одной из первых криптосистем с открытым ключом и широко используется для безопасной передачи данных. Его безопасность зависит от целочисленной факторизации , поэтому безопасный RNG (генератор случайных чисел) никогда не нужен. По сравнению с DSA RSA быстрее для проверки подписи, но медленнее для генерации.
DSA ( алгоритм цифровой подписи ) является федеральным стандартом обработки информации для цифровых подписей. Это безопасность зависит от дискретной логарифмической проблемы. По сравнению с RSA DSA быстрее для генерации подписи, но медленнее для проверки. Безопасность может быть нарушена, если используются плохие генераторы чисел .
ECDSA ( алгоритм цифровой подписи эллиптической кривой ) является реализацией алгоритма цифровой подписи DSA (эллиптической кривой). Криптография с эллиптической кривой способна обеспечить относительно тот же уровень безопасности, что и RSA, с меньшим ключом. Это также разделяет недостаток DSA в том, что он чувствителен к плохим RNG.
EdDSA ( алгоритм цифровой подписи с кривой Эдвардса ) представляет собой схему цифровой подписи, использующую вариант подписи Шнорра на основе кривых скрученных Эдвардса . Создание подписи является детерминированным в EdDSA, и ее безопасность основана на неразрешимости некоторых дискретных логарифмических проблем, поэтому она более безопасна, чем DSA и ECDSA, которая требует высокого качества случайности для каждой подписи.
Ed25519 , схема подписи EdDSA, но с использованием SHA-512/256 и Curve25519 ; это безопасная эллиптическая кривая, которая обеспечивает лучшую безопасность, чем DSA, ECDSA и EdDSA, плюс имеет лучшую производительность (не заметно для человека).
Другие примечания
Наиболее широко используются ключи RSA, поэтому они лучше всего поддерживаются.
ECDSA, (представленный в OpenSSH v5.7 ), вычислительно легче, чем DSA, но разница не заметна, если у вас нет машины с очень низкой вычислительной мощностью.
Начиная с OpenSSH 7.0 , SSH больше не поддерживает ключи DSA (ssh-dss) по умолчанию. Ключ DSA используется везде, согласно стандарту SSH (RFC 4251 и последующие).
Ed25519 был представлен в openSSH 6.5 .
источник