Existe uma maneira fácil de verificar se uma determinada chave privada corresponde a uma determinada chave pública? Eu tenho alguns arquivos * .pub e alguns * .key, e preciso verificar quais são os quais.
Novamente, esses são arquivos de publicação / chave, DSA.
Eu realmente preferiria um tipo de one-liner ...
encryption
ssl
openssl
key
Loki
fonte
fonte
id_rsa.pub.blahhost
arquivos e eu não sabia qual deles correspondia àid_rsa
chave privada única e estou configurando scp sem senha para poder migrar de sites antigos. Criar um novo par de chaves não é uma opção; Eu tenho minhas chaves bem configuradas e não vou estragar tudo.Eu sempre comparo um hash MD5 do módulo usando estes comandos:
Se os hashes corresponderem, esses dois arquivos serão combinados.
fonte
Para chaves DSA, use
para imprimir as chaves públicas,
para exibir as chaves públicas correspondentes a uma chave privada e compará-las.
fonte
Supondo que você tenha as chaves públicas nos certificados x.509 e supondo que sejam chaves RSA, para cada chave pública, faça
Para cada chave privada, faça
Em seguida, combine as teclas por módulo.
fonte
A verificação pode ser facilitada com diff:
A única coisa estranha é que o diff não diz nada se os arquivos forem iguais, portanto, você será informado apenas se o público e o privado não corresponderem.
fonte
diff -s
diff -qs
retorna uma resposta "idêntica / não idêntica" simples. (2) você deve excluir o comentário no arquivo de chave pública antes de executar a diff.Exclua as chaves públicas e gere novas a partir das chaves privadas. Mantenha-os em diretórios separados ou use uma convenção de nomenclatura para mantê-los diretos.
fonte
Digite o seguinte comando para verificar se uma chave privada e uma chave pública são um conjunto correspondente (idêntico) ou não (um conjunto correspondente) (diferente) no diretório $ USER / .ssh. O comando recortar impede que o comentário no final da linha na chave pública seja comparado, permitindo que apenas a chave seja comparada.
A saída será semelhante a uma dessas linhas.
Eu escrevi um shell script que os usuários usam para verificar a permissão de arquivos ~ / .ssh / e o conjunto de chaves correspondentes. Ele resolve meus desafios com incidentes de usuários que configuram o ssh. Isso pode ajudá-lo. https://github.com/BradleyA/docker-security-infrastructure/tree/master/ssh
Nota: Minha resposta anterior (em março de 2018) não funciona mais com as versões mais recentes do openssh. Resposta anterior: diff -qs <(ssh-keygen -yf ~ / .ssh / id_rsa) <(cut -d '' -f 1,2 ~ / .ssh / id_rsa.pub)
fonte
Se você está no Windows e deseja usar uma GUI, com o puttygen, você pode importar sua chave privada para ele:
Uma vez importado, você pode salvar sua chave pública e compará-la com a sua.
fonte
Criptografe algo com a chave pública e veja qual chave privada a descriptografa.
Este artigo de projeto de código de Jeff Atwood implementa um wrapper simplificado em torno das classes de criptografia .NET. Supondo que essas chaves foram criadas para uso com o RSA, use a classe assimétrica com sua chave pública para criptografar e o mesmo com sua chave privada para descriptografar.
fonte
Se não retornar nada, eles correspondem:
fonte
Basta usar puttygen e carregar sua chave privada nela. Oferece opções diferentes, por exemplo, exportando a chave pública correspondente.
fonte