Este campo é um comentário e pode ser alterado ou ignorado à vontade. Ele é definido como user@host
por padrão por ssh-keygen
.
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?
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.
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).
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:
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.