---
title: "Configurar chave SSH no Windows para acessar a VPS"
description: "Gere a chave ED25519 no PowerShell, ative o agente SSH do Windows, copie a chave pública para a VPS, crie atalhos no arquivo config e use o PuTTYgen."
url: "https://streethosting.com.br/guias/vps/configurar-chave-ssh-windows"
category: "vps"
slug: "configurar-chave-ssh-windows"
datePublished: "2026-09-28"
dateModified: "2026-09-28"
author: "Equipe StreetHosting"
difficulty: "iniciante"
language: "pt-BR"
keywords:
  - "configurar chave ssh windows"
  - "ssh-keygen windows powershell"
  - "ssh-agent windows 11"
  - "copiar chave publica para vps windows"
  - "puttygen chave ssh"
  - "arquivo config ssh windows"
---

# Chave SSH no Windows 10 e 11 com o OpenSSH nativo

O Windows já traz o cliente OpenSSH, então dá para gerar e usar chaves sem instalar nada. Veja o passo a passo no PowerShell, os erros de permissão mais comuns e o caminho para quem prefere o PuTTY.

> **Resposta rápida**
>
> Para **configurar chave SSH no Windows**, abra o PowerShell, rode `ssh-keygen -t ed25519`, ative o serviço `ssh-agent` como administrador e carregue a chave com `ssh-add`. Como o Windows não tem `ssh-copy-id`, envie o arquivo **.pub** para o `authorized_keys` da VPS com um comando de uma linha. Depois é só conectar e, com tudo testado, desligar o login por senha.

## O que você precisa antes

O Windows 10 a partir da versão 1809 e o Windows 11 trazem o cliente OpenSSH, o mesmo usado no Linux. Na maioria das máquinas ele já vem instalado. Para conferir, abra o PowerShell ou o Terminal do Windows e rode:

```
ssh -V
```

Se a resposta for uma versão do OpenSSH, pode seguir. Se o comando não for reconhecido, instale o **Cliente OpenSSH** em Configurações, Sistema, Recursos opcionais, ou pelo PowerShell aberto como administrador:

```
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*'
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
```

Do lado da VPS, você precisa do IP, de um usuário para entrar e do acesso por senha ainda funcionando, porque é por ele que a chave vai chegar lá. Se ainda não fez o primeiro login, siga [como acessar a VPS pela primeira vez via SSH](https://streethosting.com.br/guias/vps/como-acessar-vps-primeira-vez-ssh). O ideal é usar um usuário comum com sudo em vez do root, como mostra o guia para [criar um usuário com sudo](https://streethosting.com.br/guias/vps/criar-usuario-sudo-vps-linux).

## Gerar a chave no PowerShell

Em um PowerShell comum, sem privilégio de administrador, gere um par de chaves ED25519. O texto depois de **-C** é só um comentário para você reconhecer de qual computador a chave veio:

```
ssh-keygen -t ed25519 -C "notebook-casa"
```

1. Na pergunta sobre onde salvar, aperte Enter para aceitar `C:\Users\SeuUsuario\.ssh\id_ed25519`.
2. Defina uma frase secreta. Ela protege a chave se o arquivo vazar ou se alguém copiar a pasta do seu perfil. Com o agente ativo, você não vai digitar essa frase o tempo todo.
3. Confira os dois arquivos criados: o **id_ed25519**, que é a chave privada e nunca sai do seu computador, e o **id_ed25519.pub**, que é a pública e vai para a VPS.

Para ver o conteúdo da chave pública e a impressão digital dela:

```
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub
ssh-keygen -lf $env:USERPROFILE\.ssh\id_ed25519.pub
```

A chave pública é uma única linha que começa com `ssh-ed25519 AAAA` e termina com o comentário. ED25519 é curta, rápida e aceita por qualquer servidor OpenSSH atual, incluindo o Ubuntu 24.04. RSA com 4096 bits só faz sentido se você precisar entrar em equipamento muito antigo.

> **Atenção**
>
> Crie uma chave por computador. Se o notebook for roubado, você remove só a linha dele do servidor e os outros dispositivos continuam funcionando. Nunca envie, cole em chat ou suba para repositório o arquivo sem a extensão .pub.

## Ativar o agente SSH do Windows

O agente guarda a chave já desbloqueada e a entrega ao cliente SSH quando você conecta. No Windows ele é um serviço que vem desativado. Abra o PowerShell como administrador (clique com o botão direito e escolha Executar como administrador) e rode:

```
Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent
Get-Service ssh-agent
```

A última linha deve mostrar o status **Running**. Feche essa janela e, em um PowerShell comum, adicione a chave ao agente:

```
ssh-add $env:USERPROFILE\.ssh\id_ed25519
ssh-add -l
```

O primeiro comando pede a frase secreta uma vez. O segundo lista as chaves carregadas. Diferente do agente do Linux, o do Windows guarda a chave vinculada à sua conta e ela continua disponível depois de reiniciar o computador. É confortável, mas significa que qualquer pessoa usando a sua sessão do Windows consegue usar a chave. Bloqueie a tela quando sair de perto.

> **Dica**
>
> O Git para Windows traz um SSH próprio, com outro agente. Se o Git pedir a frase da chave toda hora, aponte para o OpenSSH do sistema com `git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"`.

## Enviar a chave pública para a VPS

No Linux isso se faz com `ssh-copy-id`, que não existe no Windows. O equivalente é mandar o arquivo .pub pelo próprio SSH e deixar um comando no servidor criar a pasta, acrescentar a chave e acertar as permissões. Troque usuario e IP_DA_VPS pelos seus dados:

```
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh usuario@IP_DA_VPS "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
```

A senha do usuário é pedida essa última vez. Em seguida, abra uma nova janela e conecte com `ssh usuario@IP_DA_VPS`. Se o agente estiver com a chave carregada, você entra direto. Se não, ele pede a frase secreta da chave, e não a senha do usuário. Essa diferença é o sinal de que a chave funcionou.

Se preferir fazer à mão, copie a linha da chave pública exibida no passo de geração, entre na VPS com senha e cole a chave em uma única linha no arquivo de chaves autorizadas:

```
mkdir -p ~/.ssh
nano ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
```

> **Atenção**
>
> A chave vale para o usuário em cuja pasta ela foi gravada. Se você rodar o comando logado como root, ela vai para `/root/.ssh` e não serve para o seu usuário comum. Se criar a pasta de outro usuário usando sudo, devolva a posse com `sudo chown -R usuario:usuario /home/usuario/.ssh`, senão o SSH ignora o arquivo.

O mesmo processo, visto do lado de quem usa Linux ou macOS, está no guia de [chave SSH sem senha na VPS](https://streethosting.com.br/guias/vps/configurar-chave-ssh-sem-senha-vps).

## Atalhos no arquivo config

Digitar usuário, IP e porta toda vez cansa. O arquivo `C:\Users\SeuUsuario\.ssh\config` guarda apelidos para cada servidor. Ele não tem extensão. Crie com `New-Item $env:USERPROFILE\.ssh\config -ItemType File` (só se ainda não existir) e abra no editor que preferir. Se usar o Bloco de Notas, confira depois com `Get-ChildItem $env:USERPROFILE\.ssh` que o nome não ganhou .txt no fim.

```
Host minha-vps
    HostName IP_DA_VPS
    User usuario
    Port 22
    IdentityFile ~/.ssh/id_ed25519
    IdentitiesOnly yes

Host *
    ServerAliveInterval 60
```

Agora `ssh minha-vps` basta. O apelido também funciona em `scp arquivo.zip minha-vps:/home/usuario/` e no Visual Studio Code com a extensão de SSH remoto, que lê o mesmo arquivo. Para mover arquivos com mais controle, veja [transferir arquivos com SCP e rsync](https://streethosting.com.br/guias/vps/transferir-arquivos-vps-scp-rsync).

- **IdentitiesOnly yes:** faz o cliente oferecer só a chave indicada. Sem isso, com várias chaves no agente, o servidor pode cortar a conexão com Too many authentication failures antes de chegar na certa, principalmente se ele limita tentativas com MaxAuthTries.
- **ServerAliveInterval 60:** manda um sinal a cada minuto e evita que o roteador de casa derrube uma sessão parada.
- **Port:** se você mudou a porta do SSH na VPS, é aqui que ela fica registrada, e não na sua memória.

## Permissões e erros comuns

Quase todo problema com chave no Windows cai em uma destas linhas. Para ver o que está acontecendo em detalhe, conecte com `ssh -v minha-vps` e leia quais chaves o cliente oferece e o que o servidor responde.

| Mensagem | Causa provável | Como resolver |
| --- | --- | --- |
| Permission denied (publickey) | Chave ausente ou quebrada no servidor, usuário errado ou permissões da pasta .ssh na VPS | Confira o authorized_keys do usuário certo e aplique chmod 700 na pasta e 600 no arquivo |
| UNPROTECTED PRIVATE KEY FILE ou Bad permissions | Chave ou config acessível a outros usuários do Windows | Remova a herança e deixe acesso só para a sua conta com icacls |
| Error connecting to agent | Serviço do agente parado ou desativado | Ative o serviço no PowerShell como administrador |
| Too many authentication failures | O agente oferece chaves demais antes da certa | Use IdentityFile com IdentitiesOnly yes no config |
| Connection timed out | IP errado, porta bloqueada no firewall ou SSH em outra porta | Confira o IP, o firewall da VPS e o parâmetro Port |
| REMOTE HOST IDENTIFICATION HAS CHANGED | A VPS foi reinstalada e a chave do servidor mudou | Remova a entrada antiga do known_hosts e confira a nova impressão digital |

Para corrigir as permissões da chave privada no Windows, remova a herança e dê acesso só ao seu usuário. Faça o mesmo com o arquivo config se o aviso citar ele:

```
icacls $env:USERPROFILE\.ssh\id_ed25519 /inheritance:r
icacls $env:USERPROFILE\.ssh\id_ed25519 /grant:r "$($env:USERNAME):(F)"
```

Depois de uma reinstalação da VPS, apague a impressão digital antiga com `ssh-keygen -R IP_DA_VPS`. Do lado do servidor, quando a chave é recusada por permissão, o motivo aparece no log do SSH: `sudo journalctl -u ssh -n 30`. Uma linha com bad ownership or modes indica pasta .ssh ou home com permissão aberta demais.

## Quem usa PuTTY: PuTTYgen e Pageant

O PuTTY não lê a chave no formato OpenSSH diretamente; ele usa arquivos .ppk. Há dois caminhos, e ambos usam o PuTTYgen, que vem junto na instalação do PuTTY.

1. **Gerar direto no PuTTYgen:** escolha o tipo EdDSA com a curva Ed25519, clique em Generate e mexa o mouse até terminar. Defina a Key passphrase, clique em Save private key para gravar o .ppk e copie o texto do quadro Public key for pasting into OpenSSH authorized_keys file. Esse texto vai, em uma linha só, para o authorized_keys da VPS.
2. **Aproveitar a chave que você já gerou:** no PuTTYgen, use Conversions > Import key, escolha o arquivo id_ed25519, digite a frase secreta e salve com Save private key. A chave pública é a mesma, então nada muda no servidor.

No PuTTY, indique o .ppk em Connection > SSH > Auth > Credentials (em versões antigas o campo fica direto em Auth), preencha usuário e IP e salve a sessão. O Pageant é o agente do PuTTY: carregue o .ppk nele uma vez por login no Windows e o PuTTY, o WinSCP e outros programas da família deixam de pedir a frase secreta.

## Depois da chave: fechar a senha

Enquanto o login por senha continuar ligado na VPS, a chave é só conforto: os robôs que testam senhas o dia inteiro ainda têm por onde tentar. Com a chave funcionando em uma segunda janela, desligue a autenticação por senha, proíba o root e restrinja quem pode entrar. A estratégia completa, com o arquivo de configuração e o teste em segunda sessão, está em [proteger SSH contra brute force](https://streethosting.com.br/guias/infraestrutura/proteger-servidor-linux-ssh-brute-force), e o banimento automático de quem insiste fica com o [Fail2Ban na VPS](https://streethosting.com.br/guias/vps/configurar-fail2ban-ssh-vps).

Antes de desligar a senha, faça duas coisas. Guarde uma cópia da chave privada em um lugar seguro, como um gerenciador de senhas ou um pendrive criptografado. E defina uma senha forte para o seu usuário na VPS com `sudo passwd usuario`: ela não serve para entrar por SSH depois que a senha for desligada, mas é ela que permite entrar pelo console do painel se a chave se perder.

Se ainda vai contratar o servidor, as [VPS Linux da StreetHosting](https://streethosting.com.br/vps) entregam acesso root por SSH desde o primeiro minuto, com ativação em até 60 segundos, datacenter em São Paulo e AntiDDoS incluso. A linha Xeon começa em R$ 23,00 por mês com 2 vCPU e 2 GB de RAM, e a Ryzen 9 9950X começa em R$ 39,00 com 1 vCPU, 2 GB DDR5 e 20 GB NVMe. Para um site com banco ou alguns bots, o plano Ryzen de R$ 64,00, com 2 vCPU e 4 GB, costuma ser o ponto de partida mais equilibrado.

## Perguntas frequentes

### O Windows tem um comando para copiar a chave para a VPS?

Não tem o equivalente nativo do Linux. A saída é mandar o conteúdo do arquivo .pub pelo próprio SSH, com um comando de uma linha no PowerShell que cria a pasta .ssh na VPS e acrescenta a chave ao authorized_keys. Outra opção é colar a chave à mão em uma sessão já aberta.

### Onde o Windows guarda a chave SSH?

Na pasta .ssh dentro do seu perfil, em C:\Users\SeuUsuario\.ssh. A chave privada é o arquivo sem extensão, como id_ed25519, e a pública é o arquivo com o mesmo nome terminado em .pub. Só a pública vai para o servidor.

### Preciso digitar a senha da chave toda vez que conecto?

Não, se o agente SSH do Windows estiver ativo. Você adiciona a chave uma vez e ele a guarda vinculada à sua conta do Windows, inclusive depois de reiniciar o computador. A contrapartida é que quem tiver acesso à sua sessão do Windows também consegue usar a chave.

### Posso usar a mesma chave no PuTTY e no PowerShell?

Pode. O PuTTY usa o formato .ppk, então abra a chave OpenSSH no PuTTYgen pela opção de importar e salve uma cópia em .ppk. A chave pública continua a mesma, então nada muda no servidor.

### Por que aparece Permission denied (publickey)?

O servidor recusou todas as chaves oferecidas. As causas mais comuns são chave pública ausente ou quebrada em duas linhas no authorized_keys, permissões erradas na pasta .ssh da VPS, usuário errado no comando ou chave privada diferente da que foi enviada. Rode ssh com a opção -v para ver qual chave está sendo testada.

## Guias relacionados

- [Como configurar chave SSH sem senha na VPS](https://streethosting.com.br/guias/vps/configurar-chave-ssh-sem-senha-vps.md)
- [Como acessar sua VPS pela primeira vez via SSH](https://streethosting.com.br/guias/vps/como-acessar-vps-primeira-vez-ssh.md)
- [Proteger SSH contra brute force: estratégia em camadas](https://streethosting.com.br/guias/infraestrutura/proteger-servidor-linux-ssh-brute-force.md)
- [Como transferir arquivos para a VPS com SCP e rsync](https://streethosting.com.br/guias/vps/transferir-arquivos-vps-scp-rsync.md)
- [Como criar um usuário com sudo na VPS Linux](https://streethosting.com.br/guias/vps/criar-usuario-sudo-vps-linux.md)

## Produtos citados

- https://streethosting.com.br/vps
- https://streethosting.com.br/vps/ryzen
- https://streethosting.com.br/vps/xeon

## Dados estruturados

```json
[
  {
    "@context": "https://schema.org",
    "@type": [
      "Article",
      "TechArticle"
    ],
    "headline": "Chave SSH no Windows 10 e 11 com o OpenSSH nativo",
    "name": "Configurar chave SSH no Windows para acessar a VPS",
    "abstract": "O Windows já traz o cliente OpenSSH, então dá para gerar e usar chaves sem instalar nada. Veja o passo a passo no PowerShell, os erros de permissão mais comuns e o caminho para quem prefere o PuTTY.",
    "description": "Gere a chave ED25519 no PowerShell, ative o agente SSH do Windows, copie a chave pública para a VPS, crie atalhos no arquivo config e use o PuTTYgen.",
    "datePublished": "2026-09-28",
    "dateModified": "2026-09-28",
    "author": {
      "@type": "Organization",
      "name": "Equipe StreetHosting"
    },
    "publisher": {
      "@type": "Organization",
      "name": "StreetHosting",
      "url": "https://streethosting.com.br"
    },
    "inLanguage": "pt-BR",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://streethosting.com.br/guias/vps/configurar-chave-ssh-windows"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "O Windows tem um comando para copiar a chave para a VPS?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Não tem o equivalente nativo do Linux. A saída é mandar o conteúdo do arquivo .pub pelo próprio SSH, com um comando de uma linha no PowerShell que cria a pasta .ssh na VPS e acrescenta a chave ao authorized_keys. Outra opção é colar a chave à mão em uma sessão já aberta."
        }
      },
      {
        "@type": "Question",
        "name": "Onde o Windows guarda a chave SSH?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Na pasta .ssh dentro do seu perfil, em C:\\Users\\SeuUsuario\\.ssh. A chave privada é o arquivo sem extensão, como id_ed25519, e a pública é o arquivo com o mesmo nome terminado em .pub. Só a pública vai para o servidor."
        }
      },
      {
        "@type": "Question",
        "name": "Preciso digitar a senha da chave toda vez que conecto?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Não, se o agente SSH do Windows estiver ativo. Você adiciona a chave uma vez e ele a guarda vinculada à sua conta do Windows, inclusive depois de reiniciar o computador. A contrapartida é que quem tiver acesso à sua sessão do Windows também consegue usar a chave."
        }
      },
      {
        "@type": "Question",
        "name": "Posso usar a mesma chave no PuTTY e no PowerShell?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Pode. O PuTTY usa o formato .ppk, então abra a chave OpenSSH no PuTTYgen pela opção de importar e salve uma cópia em .ppk. A chave pública continua a mesma, então nada muda no servidor."
        }
      },
      {
        "@type": "Question",
        "name": "Por que aparece Permission denied (publickey)?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "O servidor recusou todas as chaves oferecidas. As causas mais comuns são chave pública ausente ou quebrada em duas linhas no authorized_keys, permissões erradas na pasta .ssh da VPS, usuário errado no comando ou chave privada diferente da que foi enviada. Rode ssh com a opção -v para ver qual chave está sendo testada."
        }
      }
    ]
  }
]
```
