Como usar a chave pública ssh-rsa para criptografar um texto?

51

Então, o cenário é: Dado que sou Bob, quero criptografar algumas mensagens para Alice. A única chave pública que tenho é o ssh-rsa id_rsa.pub dela assim:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyb+qaZLwgC7KAQJzYikf3XtOWuhlMXVv2mbTKa5dp0sHPRd2RaYnH8ZRkt7V8bjqct1IHGCuxI8xyoEp4at3FHe6j9RfWiarc1ldLUCmTtryI0GGpRs6Zpvqdtpcq/1NCIYtUQAvsImyEFCtqmB2suDo1ZSllZQ0x9TCKHdCANYIOeaniuFzR57POgE3vxk/r6PO24oy8BIWqxvi29r0n1LUigVBJ7CmMHuzb4/+i1v6PxV1Lqnj6osPP9GpXpsh8kLUCby/KcmcryWNdSP0esyCdDxkA5hlIuk8qL1vzsyPluUQuc0BEHu6nuw8WQlCF1mFFxcpJL+MhWEr01WIIw== [email protected]

Então, existe uma maneira de criptografar uma string usando essa chave pública para que ela possa usar sua chave privada de id_rsa (gerada a partir de ssh-keygen ) para descriptografar a mensagem?

(Eu sei que é possível imediatamente se você estiver usando o arquivo de par de chaves .pem . Se você puder me mostrar como converter isso para o formato que o openssl suporta, também seria ótimo!)

Obrigado!

    
por sikachu 01.04.2013 / 20:53

3 respostas

65

É possível converter sua chave pública ssh para o formato PEM (que 'openssl rsautl' pode lê-la):

Exemplo:

ssh-keygen -f ~/.ssh/id_rsa.pub -e -m PKCS8 > id_rsa.pem.pub

Assumindo 'myMessage.txt' é a sua mensagem que deve ser criptografada por chave pública.

Em seguida, basta criptografar sua mensagem com openssl rsautl e sua chave pública PEM convertida, como faria normalmente:

openssl rsautl -encrypt -pubin -inkey id_rsa.pem.pub -ssl -in myMessage.txt -out myEncryptedMessage.txt

O resultado é sua mensagem criptografada em 'myEncryptedMessage.txt'

Para testar seu trabalho para descriptografar a chave privada com Alice:

openssl rsautl -decrypt -inkey ~/.ssh/id_rsa -in myEncryptedMessage.txt -out myDecryptedMessage.txt
    
por 01.04.2013 / 23:17
1

Experimente ssh-vault ele usa chaves públicas ssh-rsa para criptografar "criar um cofre" e o ssh-rsa chave privada para descriptografar "ver o conteúdo do cofre"

    
por 10.10.2016 / 16:55
-3

Por que não fazer isso da maneira mais óbvia que não requer que você faça sua própria criptografia?

Alice sftps para [email protected], que é configurado para permitir somente a autenticação de chave pública para a conta alice. As propriedades do ssh garantem que apenas o alice possa ser autemático. Mesmo um homem no ataque do meio falha desde (supondo que você desative ssh1 e insista nas configurações corretas) a comunicação inicial usando DH cria um valor conhecido tanto por alice quanto por bob, mas não para qualquer homem no meio e isso pode ser usado para autenticar que nenhuma resposta ou ataque MITM pode ver o conteúdo do comunicatino.

Portanto, tenha o alice sftp na sua caixa e faça o download do arquivo.

    
por 07.09.2013 / 04:19