Como transferir a chave SSH para múltiplos servidores com ssh-copy-id imprimir

  • 0

Como transferir a chave SSH para múltiplos servidores com ssh-copy-id

Oi, tudo bem? Aqui é a Sensei da GeHost! 🧘‍♀️ Se você já usa chave SSH pra acessar um servidor sem digitar senha toda vez, sabe como isso é uma delícia. Mas e quando você precisa levar essa mesma chave pra vários servidores? Copiar e colar na mão, um por um, dá trabalho e é fácil errar. É exatamente pra isso que existe o comando ssh-copy-id. Vamos aprender juntos, com calma, passo a passo.

O que é o ssh-copy-id, afinal?

Pense na sua chave SSH como um crachá digital: você tem a chave privada (fica só com você, nunca se compartilha) e a chave pública (pode ser distribuída, é ela que "autoriza" o acesso). O ssh-copy-id é um comandinho que pega sua chave pública e a copia automaticamente para dentro do servidor de destino, no arquivo certo, com as permissões certas. Sem ele, você teria que fazer isso manualmente — e é justamente aí que a maioria das pessoas erra.

💡 Dica da Sensei: se você ainda não tem um par de chaves SSH gerado na sua máquina, rode primeiro ssh-keygen -t ed25519 (ou ssh-keygen -t rsa -b 4096 se precisar de compatibilidade com sistemas mais antigos) e siga as instruções na tela antes de continuar este guia.

Pré-requisitos antes de começar

  • Ter o OpenSSH instalado na sua máquina (padrão em Linux e macOS; no Windows, o terminal do PowerShell moderno também já traz o cliente SSH).
  • Já ter gerado seu par de chaves (pública e privada).
  • Ter, para cada servidor, o usuário e a senha de acesso via SSH ainda ativos (você vai precisar da senha só nesta primeira transferência).

Passo a passo: enviando a chave para um servidor

  1. Abra o terminal na sua máquina.
  2. Digite o comando no formato abaixo, trocando usuario e seuservidor.com pelos dados reais do servidor:
    ssh-copy-id usuario@seuservidor.com
  3. Na primeira vez, o terminal pode perguntar se você confia na "impressão digital" (fingerprint) do servidor. Digite yes e confirme.
  4. Em seguida, ele vai pedir a senha do usuário nesse servidor. Digite (a senha não aparece na tela, é normal, siga digitando e dê enter).
  5. Pronto! Se aparecer uma mensagem dizendo que o número de chaves foi adicionado, deu tudo certo. Teste conectando de novo: ssh usuario@seuservidor.com — dessa vez não deve pedir senha.

Agora, o pulo do gato: repetindo para vários servidores

A boa notícia é que o processo é o mesmo para cada servidor — só muda o endereço. Existem duas formas de fazer isso:

Forma 1 — Rodando o comando um por um (mais segura para iniciantes)

Simples e direta: você repete o ssh-copy-id trocando o endereço a cada vez.

  1. ssh-copy-id usuario@servidor1.com
  2. ssh-copy-id usuario@servidor2.com
  3. ssh-copy-id usuario@servidor3.com

Digite a senha de cada servidor quando pedido, e em poucos minutos todos estarão com sua chave configurada.

Forma 2 — Automatizando com uma listinha (para quem já tem mais prática)

Se você tem uma lista grande de servidores, dá pra economizar tempo com um pequeno laço de repetição no terminal (Linux/macOS):

  1. Crie um arquivo de texto chamado servidores.txt com um endereço por linha, por exemplo:
    usuario@servidor1.com
    usuario@servidor2.com
    usuario@servidor3.com
  2. Rode o comando:
    while read host; do ssh-copy-id "$host"; done < servidores.txt
  3. O terminal vai pedir a senha de cada servidor, um de cada vez, seguindo a ordem da lista.
💡 Dica da Sensei: essa automação é ótima pra quem administra vários ambientes, mas exige atenção redobrada — revise sempre a lista antes de rodar, pra não enviar sua chave para um servidor errado.

Deu erro? Situações comuns

  • "command not found: ssh-copy-id" — em alguns sistemas (como macOS sem o Homebrew) esse comando não vem por padrão. Uma alternativa manual é rodar:
    cat ~/.ssh/id_ed25519.pub | ssh usuario@seuservidor.com "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
  • Ainda pede senha depois de configurado — confira se as permissões da pasta ~/.ssh no servidor estão corretas (geralmente 700 para a pasta e 600 para o arquivo authorized_keys).
  • "Permission denied (publickey)" — verifique se você está apontando para a chave pública certa e se o usuário/servidor foram digitados sem erro de digitação.

Boas práticas de segurança

  • Nunca compartilhe sua chave privada — só a pública é enviada aos servidores.
  • Proteja sua chave privada com uma senha (passphrase) ao gerá-la, assim, mesmo que alguém acesse seu computador, não conseguirá usá-la sozinha.
  • Se um servidor for descontinuado ou trocar de dono, remova a chave correspondente do arquivo authorized_keys dele.

Se o seu plano de hospedagem tiver acesso SSH liberado e você tiver dúvidas sobre usuário, endereço ou permissões específicas da sua conta, o time de suporte da GeHost te ajuda a confirmar tudo certinho pelo painel do cliente. Você não está sozinho nessa jornada! 🌱


Esta resposta lhe foi útil?

« Retornar