Não consigo descobrir por que um arquivo de chave pública SSH gerado por ssh-keygen
tem um usuário e um host no final.
Exemplo: id_rsa.pub
ssh-rsa ... rest of file ... /CA9gyE8HRhNMG6ZDwyhPBbDfX root@mydomain
Observe o root@mydomain
no final do arquivo.
Se eu posso usar a chave pública em qualquer lugar com qualquer usuário para autenticar usando minha chave privada, qual a importância de root@mydomain no processo de autenticação?
Ou é apenas um espaço reservado para descobrir por quem foi emitido?
Este campo é um comentário e pode ser alterado ou ignorado à vontade. Ele é definido
user@host
por padrão porssh-keygen
.A página de manual do OpenSSH
sshd(8)
descreve o formato de uma chave pública assim:A
ssh-keygen(1)
página man diz:Isso é brevemente explicado na página de manual
sshd(8)
da seção sobre chaves autorizadas:No
openssh
contexto de chaves autorizadas, há apenas o significado de comentário. Mas existem implementações SSH, que dão os significados a esta parte, como por exemplo a implementação SSH em modems LANCOM está usando este 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 chave é qual.
Ao olhar para uma única chave, 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 noauthorized_keys
arquivo, é muito útil ser capaz de identificar facilmente qual chave é qual.Além disso,
ssh-keygen
o padrão é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 que você postou:
Uma máquina pode ler isto:
Um ser humano pode ler este comentário:
As pessoas tendem a esquecer que, embora as coisas possam parecer complicadas em sistemas de computador, elas poderiam ser muito mais complicadas se o código fosse projetado apenas para consumo de máquina. Quero dizer, olhe para o código de malware obscuro. Depois de decodificá-lo e formatá-lo, ele pode ser lido por humanos. Mas alguém teve que se esforçar para dificultar a leitura para os humanos.
Por padrão , todos os tipos de codificação e arquivos de configuração em um sistema de computador são estruturados para consumo humano porque… Somos humanos usando máquinas e máquinas não precisam de coisas como:
Portanto, o comentário é destinado a você e a mim e a mais ninguém. Provavelmente funcionaria sem um comentário. Mas aquela vez que algo não está funcionando às 3:00 da manhã e você está procurando a chave pública certa, você vai desejar/sonhar/rezar para que o comentário esteja lá.