A maneira mais fácil de copiar chaves ssh para outra máquina?
Eu sou preguiçoso em casa e uso a autenticação por senha para as minhas máquinas em casa. Estou pronto para passar para a autenticação baseada em chaves. Há muitas opções na web sobre como fazer isso, incluindo passar a chave, passar a chave diretamente, etc.
Estou procurando a maneira mais fácil e recomendada de copiar uma chave, espero que haja uma embalagem de conveniência em algum lugar no pacote ssh do Ubuntu?
I'já estou ciente em como desligar logins de senha.
347
3
O comando
ssh-copy-id
(no pacote **openssh-client*** e instalado por padrão) faz exatamente isso:copia a chave pública da sua identidade padrão (utilize
-i identity_file
para outras identidades) para o host remoto.A identidade padrão é a sua "standard" ssh key. Ela consiste em dois arquivos (chave pública e privada) no seu diretório
~/.ssh
, normalmente chamadoidentidade
,id_rsa
,id_dsa
,id_ecdsa
ouid_ed25519
(e o mesmo com.pub
), dependendo do tipo de chave. Se você não criou mais de uma chave ssh, você não precisa se preocupar em especificar a identidade, o ssh-copy-id irá apenas selecioná-la automaticamente.Caso você não tenha uma identidade, você pode gerar uma com a ferramenta
ssh-keygen
.Além disso, se o servidor utiliza uma porta diferente da padrão (
22
) você deve utilizar aspas desta forma (fonte):Eu gosto da resposta do Marcel. Eu não conhecia esta ordem. I'sempre estive usando o que eu tinha encontrado no site Oracle:
Pensei em publicá-lo aqui ainda, porque é uma boa ilustração do que pode ser alcançado em código da concha com o poder do
ssh
. Mas utilizar ossh-copy-id
é definitivamente uma forma mais segura de o fazer correctamente!Note que se a pasta
.ssh
ainda não existir, o comando acima irá falhar. Além disso, pode ser melhor ao criar o arquivo para definir uma permissão mínima possível (basicamente leitura-escrita apenas para o proprietário). Aqui está um comando mais avançado:Método gráfico