ssh-copy-id: por que o fim da minha chave pública é diferente no meu local versus remoto?

2

Normalmente, no passado, sempre copiei manualmente a minha chave pública SSH para os controles remotos, quando necessário. Eu estou em um Mac e finalmente decidi começar a usar o ssh-copy-id para tornar minha vida mais simples, então eu usei o homebrew para instalá-lo.

Eu usei ssh-copy-id pela primeira vez e estou um pouco confuso com o resultado.

Na minha máquina local, ao visualizar minha chave id_rsa.pub , ela termina com username @ machinename . Eu amo isso e é fácil identificar as chaves que eu posso excluir em máquinas remotas mais tarde.

Eu usei ssh-copy-id na minha máquina local para mover minha chave pública para um controle remoto e, em seguida, dei uma olhada no arquivo authorized_keys no controle remoto. Eu notei que no controle remoto em vez da minha chave pública terminar com myusername @ mymachinename (como esperado) agora termina com / Users / myusername /.ssh/id_rsa ??

Por que a discrepância? Existe alguma maneira de forçar o ssh-copy-id a usar username @ machinename como na minha máquina local?

Isso pode ser apenas um mal-entendido que eu tenho com SSH e chaves em geral, mas qualquer pensamento é apreciado?

EDITAR :

Acabei de descobrir que isso só acontece quando excluo meu arquivo de identidade e presumo padrões.

Basicamente, se eu fizer apenas: ssh-copy-id user @ hostname , então recebo este comentário no arquivo authorized_keys no controle remoto.

Se eu especificar minha chave pública: ssh-copy-id -i ~ / .ssh / id_rsa.pub user @ hostname , então tudo será copiado conforme o esperado, usando myusername @ machinename como esperado?!

O que está causando essa esquisitice? O link a seguir diz que deve sempre usar o meu arquivo id_rsa.pub , então eu não precisaria especificá-lo para obter o comentário correto sobre o controle remoto, eu deveria? link

    
por skålfyfan 13.05.2015 / 18:07

1 resposta

6

Adicione a opção -i ao executar ssh-copy-id . Isso é explicado no manual:

 Default behaviour without -i, is to check if 'ssh-add -L' provides any
 output, and if so those keys are used.  Note that this results in the
 comment on the key being the filename that was given to ssh-add(1) when
 the key was loaded into your ssh-agent(1) rather than the comment con-
 tained in that file, which is a bit of a shame.  Otherwise, if ssh-add(1)
 provides no keys contents of the default_ID_file will be used.
    
por 13.05.2015 / 18:29

Tags