Como criar chave SSH e entrar na VPS sem senha
Do ssh-keygen ao login sem senha: crie o par de chaves no Linux, Mac ou Windows, envie a pública para a VPS e desligue a senha só depois de testar.
Por Redação Eleven Host · @robson.direitodigital · 27 de outubro de 2026 · 8 min de leitura

Capa da Redação Eleven Host para o guia: Como criar chave SSH e entrar na VPS sem senha Arte: Eleven Host
Para saber como criar chave SSH, rode ssh-keygen -t ed25519 no seu computador. O comando gera um par de chaves: a privada fica com você e a pública vai para o servidor, que passa a aceitar a sua entrada sem senha.
Este guia leva do comando até o login sem senha, passando por Linux, Mac e Windows 10/11. O guia Como montar servidor VPS: do plano ao primeiro site cita a chave SSH em um parágrafo; aqui está o passo a passo completo. Troque usuario e 203.0.113.10 pelo seu usuário e pelo IP da sua VPS.
O que é uma chave SSH
A chave SSH é um par de arquivos. A chave privada fica no seu computador e equivale a uma senha: não a compartilhe com ninguém. A chave pública é a que vai para o servidor e pode ser compartilhada.
Quando você conecta, o servidor confere se a sua chave privada combina com a pública que ele guardou. Se combinar, você entra sem digitar a senha da conta.
Por que usar chave em vez de senha
Uma senha pode ser adivinhada por quem tentar muitas vezes. Quando você desliga o login por senha no servidor, quem não tem a sua chave privada não consegue entrar por esse caminho.
Isso não faz o servidor ficar imune a problemas. Chave SSH é uma camada de proteção do acesso e funciona junto com firewall e atualizações. O outro lado é que, sem a chave e sem a senha, você também fica de fora. Mais adiante o guia mostra como se prevenir.
Antes de começar
- Uma VPS com acesso por SSH e um usuário comum com
sudo. O guia Como montar servidor VPS: do plano ao primeiro site explica como criar esse usuário. - O firewall com a porta do SSH liberada, como mostra o guia Firewall para VPS: como proteger seu servidor.
- A senha atual da conta, que será usada uma vez para enviar a chave.
Criar a chave no Linux e no Mac
Abra o terminal no seu computador, não no servidor, e rode:
ssh-keygen -t ed25519 -C "notebook-maria"
O -t ed25519 escolhe o tipo da chave. O -C define um comentário para você reconhecer a chave depois; se não informar, o padrão é usuario@maquina. Sem nenhum argumento, o ssh-keygen também gera uma chave Ed25519.
O comando pergunta onde salvar e pede uma passphrase. Aceite o local sugerido. Os arquivos ficam em:
- Chave privada:
~/.ssh/id_ed25519 - Chave pública:
~/.ssh/id_ed25519.pub
A passphrase é uma senha opcional que cifra o arquivo da chave privada. Com ela, quem copiar o arquivo ainda precisa da passphrase. Se quiser trocá-la depois, use ssh-keygen -p. Se você a esquecer, não há como recuperá-la: será preciso gerar uma chave nova e copiar a pública para o servidor outra vez.
Criar a chave no Windows 10/11
No Windows 10 e no 11, o ssh-keygen do OpenSSH roda no PowerShell ou no Prompt de Comando. O comando é o mesmo:
ssh-keygen -t ed25519 -C "notebook-maria"
Os arquivos ficam na pasta C:\Users\seu-usuario\.ssh\, com os mesmos nomes do Linux. Segundo a Microsoft, a chave privada equivale a uma senha, e deixar a passphrase vazia não é recomendado.
ssh-agent no Windows (opcional)
O ssh-agent guarda a chave privada carregada, para você não digitar a passphrase a cada conexão. No Windows o serviço vem desativado. Abra o PowerShell como administrador e rode:
Get-Service ssh-agent | Set-Service -StartupType AutomaticStart-Service ssh-agentssh-add $env:USERPROFILE\.ssh\id_ed25519
Precisa de um servidor? Veja os planos de VPS a partir de R$ 17,00/mês, no Plano Bronze. Ver planos de VPS
Enviar a chave pública para o servidor
A chave pública precisa estar no arquivo ~/.ssh/authorized_keys do usuário, no servidor.
Linux e Mac: ssh-copy-id
ssh-copy-id usuario@203.0.113.10
O comando pede a senha da conta para enviar a chave. Ele cria a pasta ~/.ssh e o authorized_keys no servidor se faltarem, acrescenta a chave no fim do arquivo e testa antes, para não duplicar. Para escolher a chave, use -i ~/.ssh/id_ed25519.pub. Se o SSH usa outra porta, acrescente -p 2222.
Windows: envio manual
Sem o ssh-copy-id, faça à mão. Abra o arquivo id_ed25519.pub num editor de texto e copie o conteúdo, que é uma linha só. Entre no servidor com a senha e rode:
mkdir -p ~/.sshnano ~/.ssh/authorized_keys
Cole a chave numa linha nova do arquivo (uma chave por linha), salve e ajuste as permissões:
chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys
As permissões importam porque o servidor SSH ignora o authorized_keys se ele, a pasta ~/.ssh ou a home puderem ser gravados por outros usuários.
Entrar com a chave
Abra uma conexão nova a partir do seu computador:
ssh usuario@203.0.113.10
Se a chave estiver em outro caminho, indique-a com ssh -i ~/.ssh/id_ed25519 usuario@203.0.113.10. Se você definiu uma passphrase, ela é pedida aqui (ou uma vez, se o ssh-agent estiver ativo). Se o servidor ainda pedir a senha da conta, a chave provavelmente não foi aceita: revise o conteúdo e as permissões do authorized_keys.
Só desligue o login por senha depois de entrar com a chave numa janela nova e manter a janela antiga aberta. Se algo der errado, ela ainda é o seu caminho de volta.
Desligar o login por senha com segurança
Siga esta ordem, sem pular passos.
- Teste a chave em outra janela. Com a janela atual aberta, abra uma segunda e entre com
ssh usuario@203.0.113.10. Só continue se entrar sem a senha da conta. - Edite o arquivo de configuração no servidor:
sudo nano /etc/ssh/sshd_config. ColoquePasswordAuthentication noeKbdInteractiveAuthentication no. O padrão do OpenSSH para a senha éyes;PubkeyAuthenticationjá vemyes. - Olhe a pasta
sshd_config.d. No arquivo de configuração vale o primeiro valor lido, e ele pode ter umIncludede/etc/ssh/sshd_config.d/*.conflido antes. Confira se algum arquivo dali liga a senha de novo. - Valide a sintaxe:
sudo sshd -t. Sem mensagem de erro, o arquivo é válido. - Veja o valor que vale de fato:
sudo sshd -T | grep -i passwordauthentication. O resultado deve mostrarpasswordauthentication no. - Aplique:
sudo systemctl restart ssh. Em Ubuntu e Debian o serviço se chamassh; em outras distribuições pode se chamarsshd. - Teste de novo, antes de fechar a janela antiga: abra uma terceira janela e entre com a chave. Só então feche as outras.
Sobre o usuário root: o padrão do OpenSSH em PermitRootLogin é prohibit-password, que impede o root de entrar por senha e deixa só a chave. Os outros valores são yes, forced-commands-only e no.
Se você perder a chave
Com o login por senha desligado, perder a chave privada deixa você sem acesso. Duas medidas ajudam antes que isso aconteça:
- Guarde uma cópia da chave privada em um local seguro, e não num lugar que outras pessoas alcancem.
- Cadastre duas chaves no
authorized_keys, de dois computadores diferentes, uma por linha.
Se mesmo assim perder o acesso, abra um chamado no suporte da Eleven Host e descreva a situação. O atendimento é em português.
Checklist antes de desligar a senha
- Decidi sobre a passphrase da chave privada (a Microsoft não recomenda deixá-la vazia) e existe uma cópia dela em local seguro.
- A chave pública está no
authorized_keysdo usuário, uma por linha. - As permissões estão em
700na pasta~/.sshe600noauthorized_keys. - Entrei com a chave numa janela nova, com a antiga ainda aberta.
- O usuário que entra tem
sudo. - A porta do SSH está liberada no firewall.
- O
sudo sshd -tnão mostrou erro. - O
sudo sshd -Tmostroupasswordauthentication no. - Testei o login de novo depois do restart, antes de fechar a janela antiga.
Quer ter um servidor seu? Os planos de VPS saem a partir de R$ 17,00/mês, no Plano Bronze. Conhecer a VPS
Perguntas frequentes
Preciso de passphrase na chave SSH?
Ela é opcional, mas a Microsoft não recomenda deixá-la vazia. Com passphrase, o arquivo da chave privada fica cifrado. O ssh-agent evita digitá-la a cada conexão.
Posso usar a mesma chave em vários servidores?
Pode: a chave pública pode ser compartilhada e copiada para o authorized_keys de cada servidor. A chave privada continua só no seu computador, e quem a obtiver entra em todos esses servidores; por isso a passphrase e o cuidado com o arquivo importam.
O ssh-copy-id não existe no meu Windows. E agora?
Use o envio manual: copie a linha do arquivo .pub, cole numa linha nova do authorized_keys no servidor e ajuste as permissões com chmod 700 e chmod 600.
O servidor ainda pede senha depois de eu enviar a chave. O que olhar?
Confira se a chave foi colada inteira numa única linha e se as permissões da home, da pasta ~/.ssh e do authorized_keys impedem gravação por outros usuários. Com o login por senha desligado, veja também o valor efetivo com sudo sshd -T.
E se eu perder a chave com a senha desligada?
Sem a chave privada, você perde o acesso por SSH. Abra um chamado no suporte e descreva o caso. Para evitar isso, guarde uma cópia em local seguro ou cadastre duas chaves.