SSH dá "Permission denied" na VPS: o que fazer
Permission denied quer dizer que a VPS recebeu a conexão, mas recusou o login. As causas mais comuns são senha errada, o root sem login por senha, a chave errada ou com permissão errada e o usuário errado. Comece copiando a senha e o comando do quadro Acesso SSH do painel.
O aviso Permission denied quer dizer que a VPS recebeu a conexão, mas recusou o login. As causas mais comuns são: senha errada, o usuário root sem login por senha, a chave errada ou com permissão errada e o usuário errado no comando. Comece copiando a senha e o comando prontos do quadro Acesso SSH do painel; se não resolver, entre pelo Console SSH do painel para olhar a configuração por dentro.
Atenção: segurança da sua VPS. Os comandos no SSH mexem direto no servidor e são executados por sua conta e risco. Confira cada comando antes de rodar e, se puder, crie um snapshot da VPS antes de começar.
Sintomas
- Depois de digitar a senha, o terminal mostra
Permission denied, please try again.e pede de novo. - Depois de três tentativas, aparece
root@<IP_DA_VPS>: Permission denied (publickey,password). - O terminal nem pede a senha e mostra
root@<IP_DA_VPS>: Permission denied (publickey). - Antes de recusar, aparece
WARNING: UNPROTECTED PRIVATE KEY FILE!ePermissions 0644 for '/home/<USUARIO>/.ssh/id_ed25519' are too open.
Os comandos de dentro da VPS deste artigo valem para o Ubuntu e o Debian, os sistemas das VPS da StayCloud, e supõem que você entrou como root pelo Console SSH do painel (veja "Como acessar sua VPS pelo Console SSH do painel"). O console não passa pela configuração do SSH, então funciona mesmo quando o terminal recusa o login.
Causa 1: a senha está errada
Como confirmar: a mensagem é Permission denied, please try again.. Erros comuns: Caps Lock ligado, espaço a mais ao colar, senha antiga depois de uma troca, ou senha digitada certa mas no usuário errado. Lembre que a senha não aparece enquanto você digita: isso é normal.
Como resolver: em Minhas VPS › sua VPS › Sistema › Acesso SSH, copie a senha pelo botão de copiar e cole no terminal (no Linux, Ctrl + Shift + V; no Windows, botão direito do mouse). Se não souber a senha root, redefina pelo painel, como em "Como redefinir a senha root da VPS pelo painel".
Causa 2: o root não aceita login por senha
Como confirmar: o terminal mostra Permission denied (publickey). sem pedir senha, ou a senha certa (que funciona no Console SSH) é recusada no terminal. Pelo Console SSH, veja a configuração em vigor:
sshd -T | grep -Ei 'permitrootlogin|passwordauthentication'
Se aparece permitrootlogin prohibit-password (ou without-password, ou no) ou passwordauthentication no, o SSH só aceita chave.
Como resolver: o jeito mais seguro é entrar por chave SSH, como em "Como acessar a VPS por chave SSH em vez de senha, via SSH". Se você quer voltar a entrar com senha, edite /etc/ssh/sshd_config e os arquivos em /etc/ssh/sshd_config.d/ (eles também valem e podem ter a regra), deixe as linhas assim, teste e reinicie:
PermitRootLogin yes
PasswordAuthentication yes
sshd -t
systemctl restart ssh
Não feche a sessão atual antes de testar o login num terminal novo. Se você desligou o login por senha do root, lembre que a equipe da StayCloud entra na VPS pela senha root quando você pede ajuda; sem ela, o suporte só orienta, como explica "Perguntas frequentes sobre o que o suporte da StayCloud faz".
Causa 3: a chave é outra ou está com permissão errada
Como confirmar: rode o SSH em modo detalhado no seu computador e veja quais chaves ele oferece:
ssh -v root@<IP_DA_VPS>
As linhas Offering public key: mostram as chaves testadas. Se a sua chave não aparece, o SSH está usando outra. Se aparece UNPROTECTED PRIVATE KEY FILE!, a chave privada no seu computador pode ser lida por outros usuários, e o SSH se recusa a usá-la.
Como resolver: no seu computador, proteja a chave privada. No Linux e no Mac:
chmod 600 ~/.ssh/id_ed25519
No Windows, no PowerShell, deixe só o seu usuário ler a chave:
icacls $env:USERPROFILE\.ssh\id_ed25519 /inheritance:r /grant:r "$($env:USERNAME):(R)"
Para apontar a chave certa, use -i (ou a linha IdentityFile no ~/.ssh/config):
ssh -i ~/.ssh/id_ed25519 root@<IP_DA_VPS>
Na VPS, pelo Console SSH, confira se a chave pública está em ~/.ssh/authorized_keys e se as permissões estão certas:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Para outro usuário que não o root, a pasta é /home/<USUARIO>/.ssh e o dono precisa ser ele: chown -R <USUARIO>:<USUARIO> /home/<USUARIO>/.ssh. O passo a passo completo está em "Como acessar a VPS por chave SSH em vez de senha, via SSH".
Causa 4: o usuário está errado
Como confirmar: o comando foi ssh <IP_DA_VPS>, sem usuário (o SSH usa o nome do usuário do seu computador), ou com um usuário que não existe na VPS. Pelo Console SSH, veja se o usuário existe:
id <USUARIO>
Se aparece no such user, o usuário não existe.
Como resolver: sempre informe o usuário no comando, como ssh root@<IP_DA_VPS> ou ssh <USUARIO>@<IP_DA_VPS>. Se você usa um apelido no ~/.ssh/config, confira a linha User. Para criar um usuário próprio, veja "Como criar um usuário com sudo e entrar sem root na VPS via SSH".
Quando chamar o Suporte
Na VPS, você tem acesso root e cuida do que instala; o suporte da StayCloud cuida da infraestrutura: a VPS ligada, a rede e o painel. Veja "Perguntas frequentes sobre o que o suporte da StayCloud faz". Abra um chamado se a senha acabou de ser redefinida pelo painel e nem o Console SSH aceita (Login incorrect), ou se a redefinição de senha não termina.
No chamado, informe o IP da VPS ou o nome dela no painel, o horário, a mensagem de erro literal, a saída do ssh -v e o que você já tentou. Nunca mande a senha nem a chave privada na descrição: se a equipe precisar de algum acesso, use o campo de credenciais do próprio chamado. O passo a passo está em "Como abrir um chamado no Suporte".
Relacionados
- Como acessar sua VPS por SSH pelo terminal (Linux, Windows e Mac)
- Como acessar sua VPS pelo Console SSH do painel
- Como redefinir a senha root da VPS pelo painel
- Como acessar a VPS por chave SSH em vez de senha, via SSH
- Como criar um usuário com sudo e entrar sem root na VPS via SSH
- Perguntas frequentes sobre o que o suporte da StayCloud faz
- Como abrir um chamado no Suporte
Viu algo errado ou desatualizado?