AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1535116
Accepted
RocketNuts
RocketNuts
Asked: 2020-03-24 07:54:27 +0800 CST2020-03-24 07:54:27 +0800 CST 2020-03-24 07:54:27 +0800 CST

Gerando par de chaves público + privado para SSH: diferença entre ssh-keygen e openssl?

  • 772

Desejo criar pares de chaves pública e privada a serem usados ​​para autenticação SSH.

Não consigo entender a diferença entre isso:

openssl genrsa -out MyPrivateKey 4096
openssl rsa -in MyPrivateKey -pubout -out MyPublicKey

que primeiro cria uma chave RSA privada e então deriva a chave pública dela, ou:

ssh-keygen -b 4096 -t rsa -f MyFancyKey

que cria uma chave RSA privada no arquivo 'MyFancyKey' e a chave pública correspondente em 'MyFancyKey.pub'.

A estrutura das chaves privadas parece um pouco semelhante, embora a criada com opensslcomece com:
-----BEGIN RSA PRIVATE KEY-----

E o de ssh-keygencomeça com:
-----BEGIN OPENSSH PRIVATE KEY-----

Existe uma diferença fundamental entre esses dois tipos de chaves?


Em seguida, as chaves públicas correspondentes, a de opensslcontém:

-----BEGIN PUBLIC KEY-----
  ...base64 encoded...
-----BEGIN PUBLIC KEY-----

Enquanto o de ssh-keygencontém apenas uma linha:
ssh-rsa XXXXXX...base64 encoded...XXXXX [email protected]

Esses são essencialmente os mesmos tipos de dados, mas formatados de maneira diferente? Ou são realmente incompatíveis?

Estou tentando entender completamente como tudo isso funciona em relação ao SSH. Por exemplo, por que meu nome de usuário, meu nome de computador e meu nome de rede local estão nessa chave, normalmente não deveria ser usado para acessar o SSH em outros computadores? Com meu nome de usuário naquele computador, não meu.

ssh openssh
  • 1 1 respostas
  • 5333 Views

1 respostas

  • Voted
  1. Best Answer
    user1686
    2020-03-24T09:07:14+08:002020-03-24T09:07:14+08:00

    chaves privadas

    Existe uma diferença fundamental entre esses dois tipos de chaves?

    Não, são essencialmente os mesmos dados.

    • BEGIN RSA PRIVATE KEYindica o formato de chave "PKCS#1" ou "PEM", que é a codificação Base64 de uma estrutura serializada ASN.1 DER. É uma sequência ASN.1 básica contendo os parâmetros RSA ( n , e , d , p , q , etc).

      Na verdade, o OpenSSH também usa tradicionalmente esse formato - porque ele já usa o código criptográfico do OpenSSL, portanto, as funções "chave de carregamento" e "chave de gravação" também estavam convenientemente disponíveis.

      Isso significa que você pode usar ssh-keygen -m PEMpara gerar ou converter essas chaves.

    • BEGIN PRIVATE KEYindica o formato de chave "PKCS#8" (não criptografado); o conteúdo é muito semelhante ao formato acima, com os mesmos parâmetros RSA aninhados dentro de outra estrutura que indica que é de fato uma chave RSA.

      Comparado ao PEM, o formato PKCS#8 separa de forma mais clara a "carga útil" (algoritmo de chave, criptografia) do invólucro Base64 externo. No entanto, isso não altera o significado dos dados.

      O OpenSSH também reconhecerá esse formato (devido ao uso do OpenSSL para carregamento de chaves).

    • BEGIN OPENSSH PRIVATE KEYé um formato inventado por OpenSSH para OpenSSH. Desta vez, ele usa a serialização de pacotes SSHv2 em vez de DER.

      O OpenSSH agora usa esse formato para evitar depender totalmente do OpenSSL e/ou para adicionar novos algoritmos de chave sem esperar que o PKIX padronize um formato de serialização ASN.1 (que de outra forma não tem absolutamente nada a ver com SSH) e esperando que o OpenSSL o implemente.

    • PuTTY tem seu próprio formato .ppk. Você pode usar /usr/bin/puttygen para converter entre todos eles.

    • Veja também: Formato de arquivo de chave pública OpenSSH?

    chaves públicas

    Esses são essencialmente os mesmos tipos de dados, mas formatados de maneira diferente?

    Sim, são essencialmente os mesmos dados.

    • BEGIN PUBLIC KEYé, acredito, também PKCS # 8 - então dentro de Base64 há uma estrutura ASN.1 serializada por DER que a identifica como uma chave RSA, seguida por parâmetros de chave ( n , e )

    • O formato de uma linha é parcialmente específico do OpenSSH, embora os dados centrais codificados em Base64 estejam exatamente no mesmo formato usado no próprio protocolo SSHv2 ("on the wire"). Como você pode imaginar, os dados codificados usam a serialização de pacotes SSHv2 – mas ainda mantêm os mesmos valores RSA n e e .

    • Veja também: Formato de arquivo de chave pública OpenSSH?

    Por exemplo, por que meu nome de usuário, meu nome de computador e meu nome de rede local estão nessa chave

    É um comentário para ajudá-lo a distinguir esta chave pública de outras chaves públicas quando você tiver um authorized_keysarquivo longo.

    • 3

relate perguntas

  • Como acessar remotamente o console do EC2 usando GUI

  • Exigir autenticação LDAP *e* autenticação ssh

  • Carregar chave “ec256.pem”: formato inválido é lançado ao tentar gerar chave pública a partir de chave privada

  • Por que chown 600 id_rsa corrige problemas de permissões?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve