Qual a importância do usuário / host no final de um arquivo de chave pública SSH?

56

Não consigo entender por que um arquivo de chave pública SSH gerado por ssh-keygen tem um usuário e um host no final dele.

Exemplo: id_rsa.pub

ssh-rsa ... rest of file ... /CA9gyE8HRhNMG6ZDwyhPBbDfX root@mydomain

Observe o root@mydomain no final do arquivo.

Se eu puder usar a chave pública em qualquer lugar com qualquer usuário para autenticar usando minha chave privada, qual o significado da raiz @ mydomain no processo de autenticação?

Ou é apenas um espaço reservado para descobrir quem foi emitido por ele?

    
por Basil A 16.12.2015 / 22:04

4 respostas

86

Este campo é um comentário e pode ser alterado ou ignorado à vontade. Ele é definido como user@host por padrão por ssh-keygen .

    
por 16.12.2015 / 22:17
43

Isso é explicado brevemente na página de manual de sshd(8) na seção sobre chaves autorizadas:

Protocol 2 public key consist of: options, keytype, base64-encoded key, comment.

Em openssh contexto de chaves autorizadas, há apenas significado de comentário. Mas há a implementação de SSH, que dá os significados a essa parte, como por exemplo, a implementação de SSH em modems LANCOM está usando esse comentário como um nome de usuário para o qual a chave é válida.

    
por 16.12.2015 / 23:53
17

Como outros apontaram, é um comentário para permitir que você identifique qual é a chave.

Ao olhar para uma única chave em, por exemplo, id_rsa.pub , não faz muita diferença, mas ao olhar para uma lista potencialmente longa de chaves, como o que você tem no arquivo authorized_keys , é muito útil para poder identificar facilmente qual é a chave.

Além disso, o padrão ssh-keygen é user@hostname , que para casos de uso típicos é um identificador claro de qual chave é ( user@domain não seria).

    
por 17.12.2015 / 08:25
5

Muito, muito simples: eu e você somos humanos usando uma máquina. Então, olhando para este exemplo, você postou:

ssh-rsa [piles of gobbledygook]…CA9gyE8HRhNMG6ZDwyhPBbDfX root@mydomain

Uma máquina pode ler isto:

ssh-rsa [piles of gobbledygook]…CA9gyE8HRhNMG6ZDwyhPBbDfX

Um humano pode ler este comentário:

root@mydomain

As pessoas tendem a esquecer que mesmo que as coisas possam parecer complicadas em sistemas de computadores, elas podem ser toneladas mais complicadas se o código foi projetado somente para consumo de máquina. Quero dizer, olhe para código de malware obscuro. Depois de decodificá-lo e formatá-lo, ele é legível para humanos. Mas alguém teve que sair do seu caminho para tornar difícil para os humanos lerem.

Por padrão, todos tipos de arquivos de codificação e configuração em um sistema de computador são estruturados para consumo humano porque ... Somos seres humanos que usam máquinas e máquinas, não precisamos de coisas como:

  • Comentários.
  • Recortes
  • Variáveis e funções escritas em uma linguagem legível por humanos.

Então o comentário é para você e para mim e para mais ninguém. Provavelmente funcionaria sem um comentário. Mas uma vez que algo não está funcionando às 3:00 da manhã e você está procurando pela chave pública correta, você vai desejar / sonhar / rezar para que o comentário esteja presente.

    
por 17.12.2015 / 08:13