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.
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
- Abra o terminal do seu computador e rode:
Resultado: o terminal pergunta onde salvar (ssh-keygen -t ed25519 -C "meu-computador"Enter file in which to save the key). - Aperte
Enterpara aceitar o local padrão.Resultado: o terminal pede uma senha para a chave (Enter passphrase). - Digite uma senha para proteger a chave e confirme, ou aperte
Enterduas vezes para deixar sem senha.Resultado: o terminal mostra onde salvou as duas partes, por exemplo~/.ssh/id_ed25519e~/.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
- Rode, trocando
<IP_DA_VPS>pelo IP da sua VPS:
Resultado: o terminal pede a senha root da VPS.ssh-copy-id root@<IP_DA_VPS> - Digite a senha root e aperte
Enter.Resultado: apareceNumber 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:
- Rode, trocando
<IP_DA_VPS>pelo IP da sua VPS:
Resultado: o terminal pede a senha root da 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" - 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.
- 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.
- Linux e Mac:
- Cole o bloco abaixo, trocando o IP. Se você criou um usuário próprio na VPS, troque
rootpor ele:
Resultado: o apelidoHost minhavps HostName <IP_DA_VPS> User root IdentityFile ~/.ssh/id_ed25519minhavpsfica configurado. Se a VPS usa outra porta para o SSH, acrescente uma linhaPort <PORTA>. - Salve e feche o arquivo (no
nano,Ctrl+O,EntereCtrl+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
- Conecte na VPS:
Ou, sem apelido:ssh minhavpsssh 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
Viu algo errado ou desatualizado?