Ir para o conteúdo
Ajuda

Como acessar a VPS por chave SSH em vez de senha, via SSH

No seu computador, crie uma chave com ssh-keygen e copie a parte pública para a VPS com ssh-copy-id (no Windows, com um comando do PowerShell). Depois, a VPS deixa você entrar sem digitar a senha. Um apelido no arquivo ~/.ssh/config encurta o comando para ssh minhavps.

4 min de leitura

Com uma chave SSH, você entra na VPS sem digitar a senha toda vez, e com mais segurança. Crie a chave no seu computador com ssh-keygen, copie a parte pública para a VPS com ssh-copy-id (no Windows, com um comando do PowerShell) e, se quiser, crie um apelido no arquivo ~/.ssh/config para conectar só com ssh minhavps.

Antes de começar

  • Saiba acessar a VPS por SSH com senha. Se ainda não sabe, veja "Como acessar sua VPS por SSH pelo terminal (Linux, Windows e Mac)".
  • Tenha o IP da VPS e a senha root. Você vai usar a senha uma última vez, para copiar a chave.
  • Os comandos deste artigo rodam no terminal do seu computador (Linux, Mac ou PowerShell no Windows 10 ou 11), não na VPS, a não ser quando indicado.
  • Continue com a senha root guardada num lugar seguro. Ela segue valendo e é a sua saída se você perder a chave ou trocar de computador.

Como a chave funciona

A chave tem duas partes, criadas juntas:

  • A chave privada (id_ed25519) fica só no seu computador. Nunca envie para ninguém nem cole em chat.
  • A chave pública (id_ed25519.pub) vai para a VPS, no arquivo ~/.ssh/authorized_keys. Ela pode ser compartilhada sem risco.

Quando você conecta, a VPS confere se a sua chave privada combina com a pública que ela guarda.

Criar a chave no seu computador

  1. Abra o terminal do seu computador e rode:
    ssh-keygen -t ed25519 -C "meu-computador"
    
    Resultado: o terminal pergunta onde salvar (Enter file in which to save the key).
  2. Aperte Enter para aceitar o local padrão.Resultado: o terminal pede uma senha para a chave (Enter passphrase).
  3. Digite uma senha para proteger a chave e confirme, ou aperte Enter duas vezes para deixar sem senha.Resultado: o terminal mostra onde salvou as duas partes, por exemplo ~/.ssh/id_ed25519 e ~/.ssh/id_ed25519.pub.

Se aparecer que o arquivo já existe (already exists. Overwrite (y/n)?), responda n: você já tem uma chave e pode usá-la.

Copiar a chave para a VPS no Linux e no Mac

  1. Rode, trocando <IP_DA_VPS> pelo IP da sua VPS:
    ssh-copy-id root@<IP_DA_VPS>
    
    Resultado: o terminal pede a senha root da VPS.
  2. Digite a senha root e aperte Enter.Resultado: aparece Number of key(s) added: 1.

Copiar a chave para a VPS no Windows

O Windows não tem o ssh-copy-id. No PowerShell, use este comando, que faz o mesmo:

  1. Rode, trocando <IP_DA_VPS> pelo IP da sua VPS:
    type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@<IP_DA_VPS> "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
    
    Resultado: o terminal pede a senha root da VPS.
  2. Digite a senha root e aperte Enter.Resultado: o comando termina sem mensagem e o prompt do PowerShell volta.

Criar um apelido para a VPS (opcional)

Com um apelido, você conecta com ssh minhavps em vez de digitar usuário e IP.

  1. Abra (ou crie) o arquivo de configuração do SSH no seu computador:
    • Linux e Mac: nano ~/.ssh/config
    • Windows (PowerShell): notepad $env:USERPROFILE\.ssh\configResultado: abre o arquivo, vazio se ele ainda não existia. No Windows, se o Bloco de Notas perguntar se quer criar o arquivo, clique em Sim.
  2. Cole o bloco abaixo, trocando o IP. Se você criou um usuário próprio na VPS, troque root por ele:
    Host minhavps
        HostName <IP_DA_VPS>
        User root
        IdentityFile ~/.ssh/id_ed25519
    
    Resultado: o apelido minhavps fica configurado. Se a VPS usa outra porta para o SSH, acrescente uma linha Port <PORTA>.
  3. Salve e feche o arquivo (no nano, Ctrl + O, Enter e Ctrl + X).Resultado: o prompt do terminal volta.

No Windows, confira que o arquivo foi salvo como config, sem .txt no fim.

Como saber se deu certo

  1. Conecte na VPS:
    ssh minhavps
    
    Ou, sem apelido: ssh root@<IP_DA_VPS>.Resultado: você entra na VPS sem digitar a senha root. Se a chave tem senha, o terminal pede a senha da chave (Enter passphrase for key), e não a da VPS.

Se algo der errado

A VPS continua pedindo a senha root

Causa: a chave pública não chegou na VPS ou as permissões da pasta estão erradas. Solução: entre na VPS com a senha e rode chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys. Depois, confira se a chave está lá com cat ~/.ssh/authorized_keys.

"Permission denied (publickey)."

Causa: a VPS só aceita chave e a sua não confere, ou o SSH está usando outra chave. Solução: confira o IdentityFile no ~/.ssh/config. Se não conseguir entrar de jeito nenhum, use o Console SSH do painel.

"Bad owner or permissions on ~/.ssh/config"

Causa: o arquivo config no seu computador pode ser alterado por outros usuários. Solução: no Linux e no Mac, rode chmod 600 ~/.ssh/config.

Troquei de computador e não consigo entrar

Causa: a chave privada ficou no computador antigo. Solução: entre com a senha root e repita este passo a passo no computador novo. Cada computador pode ter a sua chave; todas ficam juntas no authorized_keys.

Relacionados

  • Como acessar sua VPS por SSH pelo terminal (Linux, Windows e Mac)
  • Como criar um usuário com sudo e entrar sem root na VPS via SSH
  • Como acessar sua VPS pelo Console SSH do painel
  • Como fazer o Claude Code acessar o SSH da sua VPS
Este artigo ajudou?

Viu algo errado ou desatualizado?