Como nomear os pares de chaves pública e privada do openssh?

3

Estou usando pares de chaves pública / privada há muito tempo. E quase ao mesmo tempo, estou me perguntando uma e outra vez, qual extensão de arquivo devo usar. Parece que pelo menos para as chaves públicas e privadas (openssh) não existe nenhuma convenção?

Quero dizer, em PuTTy há uma extensão especial .ppk para "PuTTy Private Key" e a chave pública é armazenada sem uma extensão ou com .pub . Eu pessoalmente prefiro não usar .pub , porque a Microsoft já está usando essa extensão para o MS Publisher. Então, para o PuTTy eu armazeno as duas chaves com o mesmo nome e adiciono .ppk ao privado e nada à chave pública. E nesse caso eu posso viver com isso. Eu posso identificar qual é a chave pública e qual é a privada e que a privada é apenas para PuTTy.

Mas o que devo fazer com a chave openssh privada? Basta armazená-lo sem uma extensão? Ou use algo como .openssh ? Além disso, se realmente não existe uma convenção, se alguém apenas pensasse sobre isso e resolvesse algum tipo de conceito para si mesmo, eu também apreciaria que ...

Obrigado antecipadamente!

    
por I-GaLaXy-I 06.09.2017 / 17:25

2 respostas

6

Primeiramente, não há uma convenção oficial para nomear chaves. Eles nomes de arquivos não importam. Eles são importantes apenas para você, que tem que gerenciá-los. O software está preocupado apenas com o conteúdo dos arquivos.

Dito isso, os arquivos de chave OpenSSH são apenas arquivos de texto, então você poderia nomeá-los com uma extensão .txt .

Eu costumo ficar com a convenção que a ferramenta ssh-keygen usa, que é id_{key_algorithm} (ou seja, id_rsa ou id_dsa ) para a chave privada e depois o nome da chave privada + .pub para o chave pública ( id_rsa.pub ou id_dsa.pub ). Se eu precisar manter várias chaves, adicionarei um identificador adicional ao final do nome para obter nomes como id_rsa_myhost e id_rsa_myhost.pub .

    
por 06.09.2017 / 17:57
2

Então eu pensei em alguns conceitos de nomenclatura e acabei assim agora. Eu sei que não há nenhuma convenção exceto por .ppk (PuTTy Private Key) em PuTTy - então este não é um "Você tem que fazer assim" , é bastante idéia de como conecptos de nomenclatura podem ser parecidos com . Então eu pensei em compartilhar com você de qualquer maneira - talvez isso ajude alguém, pelo menos, a construir seu próprio conceito.

O que eu quero / não quero

  • Eu quero usar os keypairs OpenSSH e PuTTy
  • Eu quero que as chaves sejam imediatamente identificáveis e não consigam se confundir - portanto, quero identificar
    • o algoritmo
    • se for uma chave privada ou pública
    • se for o formato OpenSSH ou PuTTy
  • Eu quero que o nome seja Windows e Unix "compatível / compatível" (por exemplo, não quero espaços no Linux - mesmo que não seja uma política oficial)
  • Eu não quero mudar todas as chaves em todos os servidores, se alguma coisa (talvez algum tipo de problema de segurança) acontecer, então eu posso
    • não quer usar o mesmo par de chaves para vários servidores
    • deseja usar um par de chaves para apenas uma finalidade (o objetivo pode ser um usuário, um serviço ou uma tarefa, por exemplo)

Portanto, o nome deve conter as seguintes informações:

  • Informações de finalidade, se forem (nome de usuário ou nome da tarefa, por exemplo)
  • O nome do servidor, se for uma chave específica do servidor
  • O algoritmo
  • É uma chave privada ou pública?
  • O formato OpenSSH ou PuTTy?

Um esquema de nome possível

Como heavyd mencionado, acho que é realmente uma boa ideia seguir a sintaxe do ssh-keygen tool. Então eu uso isso (exceto para o .pub para chaves públicas, porque esta extensão de arquivo é usada pelo Microsoft Publisher e pode ser interpretada incorretamente em sistemas Windows - há também um ícone próprio para o MS Publisher) e combiná-lo com a convenção do POTTY ( .ppk ) e as condições acima. Portanto, um possível esquema de nomes poderia ser:

id_<key_algorithm>_<servername>_<purpose>.<format_information>

Com as seguintes regras:

  • Se não for para um servidor específico, remova <servername>
  • Se não for para um propósito específico, remova <purpose>
  • Pelo menos uma das informações ( <purpose> ou <servername> ) deve estar contida no nome

A informação de formato (OpenSSH / PuTTy e privada / pública)

O PuTTy usa .ppk para chaves privadas e a ferramenta ssh-keygen vem com .pub para chaves públicas aqui, o que não desejo usar por causa do MS Publisher. Portanto, eu mantenho PuTTys .ppk , diferem apenas um pouco de ssh-keygen s .pub e usam ambas "convenções" como base para construir as outras próximas a esses nomes. Então, essa informação é adicionada como "extensão do arquivo" :

Name of OpenSSH private key:  .pk        an alternaitve could be .opk or   .ospk
Name of OpenSSH public key:   .pubk      an alternaitve could be .opubk or .ospubk
Name of PuTTY private key:    .ppk
Name of PuTTy Public Key:     .ppubk

Alguns exemplos:

id_rsa_foo_bar.ppk
id_dsa_foo.pk

id_rsa_server01_rsync.pk
id_rsa_server01_rsync.pubk
id_rsa_server01_rsync.ppk
id_rsa_server01_rsync.ppubk
    
por 23.10.2017 / 17:19