Qual é a diferença entre uma chave OpenSSH e uma chave PuTTY?

Qual é a diferença entre uma chave OpenSSH e uma chave PuTTY?

Descobri que ssh-keygeno pacote (ssh) produz chaves diferentes de puttygen("massa" pacote).

Se eu criar chaves públicas e privadas com ssh-keygenalguns servidores SSH não aceitarão minhas chaves. Se eu criar chaves com puttygenapenas um servidor aceito.

Por que os repositórios Linux não propõem alguma solução (pacote) comum para isso?

Encontrei outro pacotessh-3.2.9.1que cria chaves que funcionam com PuTTY. Mas por que não existe nenhuma solução útil em SSH?

Responder1

OpenSSH é a implementação padrão de fato do protocolo SSH. Se PuTTY e OpenSSH forem diferentes, PuTTY é o incompatível.

Se você gerar uma chave com OpenSSH usando ssh-keygenas opções padrão, ela funcionará com praticamente todos os servidores existentes. Um servidor que não aceita tal chave seria antigo, usando uma implementação diferente de SSH ou configurado de uma forma estranha e restritiva. Chaves de tipo não padrão podem não ser suportadas em alguns servidores. Em particular, as chaves ECDSA tornam o estabelecimento de sessões um pouco mais rápido, mas são suportadas apenas por versões recentes do OpenSSH.

PuTTY usa um formato de arquivo de chave diferente. Ele vem com ferramentas paraconverterentre seu próprio .ppkformato e o formato do OpenSSH.

Este ssh-3.2.9.1 que você encontrou éum produto comercialque possui seu próprio formato de chave privada diferente. Não há razão para usá-lo em vez do OpenSSH. Só pode ser menos compatível, exige pagamento e não há nenhum tutorial sobre como usá-lo por aí.

Responder2

A maioria das distribuições Linux possui PuTTY (nome do pacote putty) disponível para Linux. Você pode instalar o PuTTY no lado do Linux e usá-lo puttygenpara converter os arquivos .ppk em ssharquivos de chave de estilo regular (chamados de arquivos PEM - mesmo que eles não recebam um .pem no nome do arquivo).

puttygen id_dsa.ppk -O private-openssh -o id_dsa

OBSERVAÇÃO:Você também pode usar puttygenpara importar ssharquivos PEM de estilo de volta para o PuTTY.

O autor do PuTTY optou pela simplicidade, portanto as chaves pública e privada, que constituem a segurança subjacente usada pelo PuTTY/SSH-2autenticação de chave, são armazenados em um único arquivo .ppk proprietário. Normalmente, essas chaves são mantidas como dois arquivos separados pelo ssh.

No Linux, os arquivos principais são normalmente mantidos no diretório.ssh.

Há uma boa visão geral do processo de conversão aqui nesta pergunta do Stack Overflow intitulada:Converter formato de arquivo PEM para PPK.

O autor do PuTTY também discute sua justificativa para o uso de arquivos .ppk noManual do usuário PuTTY. Você pode ler sobre isso aqui na seção 8.2.12.

Responder3

Ambos armazenam um "par de chaves RSA para a versão 2 do protocolo SSH" e podem serconvertidointercambiavelmente; no entanto, em relação à diferença real de formato armazenado:

dehttps://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/key-formats-natively.html

As vantagens do formato de chave PuTTY são:

  • A metade pública da chave é armazenada em texto simples.O formato de chave privada do OpenSSH criptografa todo o arquivo de chave,para que o cliente solicite sua senha antes de poder fazer qualquer coisa com a chave. Em particular, isso significa que ele precisa solicitar sua senha antes mesmo de poderoferecera chave pública para o servidor para autenticação. O formato do PuTTY armazena a chave pública em texto simples e criptografa apenas a metade privada, o que significa que ele pode enviar automaticamente a chave pública ao servidor e determinar se o servidor está disposto a aceitar autenticações com essa chave, e só solicitará um senha se realmente for necessário.

    Acho que o OpenSSH lerá um .pubarquivo para essa finalidade se ele aparecer junto com o arquivo de chave privada, mas isso é uma fonte de confusão com a maior frequência possível (já vi pessoas substituirem um arquivo de chave privada e deixarem um arquivo desatualizado .pubao lado e então ficar muito confuso com o processo de autenticação SSH resultante!).
  • A chave é totalmente inviolável.Os formatos de chave que armazenam a chave pública em texto simples podem ser vulneráveis ​​a um ataque de adulteração, no qual a metade pública da chave é modificada de tal forma que as assinaturas feitas com a chave adulterada vazam informações sobre a metade privada. Por esta razão,O formato de chave do PuTTY contém um MAC (código de autenticação de mensagem), codificado na senha e cobrindo as metades pública e privada da chave.Assim, proporcionamos a conveniência de ter a chave pública disponível em texto simples, mas também detectamos instantaneamente qualquer tentativa de ataque de adulteração, proporcionando uma combinação de segurança e conveniência que não acredito ser encontrada em qualquer outro formato de chave. Como benefício colateral, o MAC também cobre o comentário da chave, evitando qualquer dano possível se alguém trocasse duas chaves e trocasse os comentários.

    A abordagem do OpenSSH de manter a chave pública criptografadapodertambém fornecem alguma segurança contra esse tipo de ataque, mas não está claro se fornece proteção adequada: a criptografia projetada para confidencialidade geralmente deixa maneiras pelas quais os dados criptografados podem ser modificados de forma útil por um invasor. Para uma proteção real da integridade, você deseja um MAC realmente dedicado, projetado para fazer exatamente isso.

[ênfaseadicionado]

informação relacionada