Configurar Oh My ZSH no WSL do Windows 11 com SSH

Este guia cobre do zero ao ambiente completo: WSL2 instalado, Ubuntu atualizado, terminal customizado com Oh My Zsh + Agnoster e SSH autenticado no GitHub — tudo funcionando dentro do Windows 11.


Pré-requisitos

Antes de começar, confirme:

  • Windows 11
  • Virtualização habilitada na BIOS/UEFI
  • Conexão com a internet
  • PowerShell com privilégios de administrador

Para verificar a virtualização, abre o Gerenciador de Tarefas → aba Desempenho → CPU → confirma se Virtualização: Habilitada aparece no canto inferior direito.


Instalando o WSL2

Instalação com um único comando

Abre o PowerShell como Administrador e roda:

wsl --install

Esse único comando faz tudo automaticamente: habilita os recursos do Windows necessários, baixa e instala o kernel Linux mais recente, define WSL2 como padrão e instala o Ubuntu.

Após o comando terminar, é obrigatório reiniciar o computador para concluir a instalação.

Verificando a instalação após o reboot

wsl --version

A saída esperada é algo como:

Versão do WSL: 2.x.x.x
Versão do kernel: 5.15.x.x
Versão do WSLg: 1.x.x

Para confirmar a versão da distro instalada:

wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Stopped         2

O VERSION 2 confirma que está rodando WSL2.

Para sempre garantir que o WSL2 é o padrão para novas distros: wsl --set-default-version 2


Configurando o Ubuntu

Primeiro boot e criação do usuário

Abre o Ubuntu no menu Iniciar (ou via wsl no terminal). Na primeira execução, vai pedir para criar um usuário Linux:

Enter new UNIX username: seuusuario
New password: ********
Retype new password: ********

A senha não aparece enquanto você digita — isso é comportamento normal do terminal Linux.

Atualizando o sistema

sudo apt update && sudo apt upgrade -y

Instala também pacotes essenciais:

sudo apt install -y curl wget git build-essential unzip
Pacote O que faz
curl / wget Baixar arquivos via terminal
git Controle de versão
build-essential Compiladores e ferramentas de build
unzip Descompactar arquivos

Instalando o Zsh e Oh My Zsh

sudo apt install -y zsh

Com o Zsh instalado, instala o Oh My Zsh:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Durante a instalação, vai perguntar se deseja trocar o shell padrão para Zsh. Confirma com y.


Tema Agnoster

O Agnoster é um tema estilo powerline — mostra o diretório atual, branch Git e status do repositório em segmentos coloridos.

Instalando a fonte Powerline (no Windows)

A fonte precisa ser instalada no Windows, não no WSL, porque é o Windows Terminal quem renderiza os caracteres.

  1. Baixa a fonte MesloLGS NF: Download direto
  2. Clica duas vezes no .ttf e clica em Instalar
  3. Abre as configurações do Windows Terminal → perfil Ubuntu → Aparência → altera a fonte para MesloLGS NF

Ativando o tema

nano ~/.zshrc

Encontra a linha ZSH_THEME="robbyrussell" e troca por:

ZSH_THEME="agnoster"

Para ocultar o usuario@hostname no prompt e deixar mais limpo, adiciona logo abaixo da linha do tema:

prompt_context() {}

Plugins do Oh My Zsh

Instalando plugins externos

zsh-autosuggestions — sugestões baseadas no histórico:

git clone https://github.com/zsh-users/zsh-autosuggestions \
  ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

zsh-syntax-highlighting — coloração de sintaxe em tempo real:

git clone https://github.com/zsh-users/zsh-syntax-highlighting \
  ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

Ativando os plugins no .zshrc

nano ~/.zshrc

Encontra a linha plugins=(git) e substitui por:

plugins=(
  git
  ssh-agent
  zsh-autosuggestions
  zsh-syntax-highlighting
)
Plugin O que faz
git Aliases para Git (gst, gco, gp, etc.)
ssh-agent Inicia o agente SSH automaticamente
zsh-autosuggestions Sugere comandos anteriores em cinza
zsh-syntax-highlighting Colore comandos válidos de verde e inválidos de vermelho

Aplicando as alterações

source ~/.zshrc

Se aparecer erro de permissão no zsh-syntax-highlighting, roda:

chmod 755 ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

SSH no GitHub

Gerando o par de chaves

ssh-keygen -t ed25519 -C "seu@email.com"

Use o mesmo e-mail cadastrado na sua conta GitHub. Quando perguntar o local de salvamento, pressiona Enter para aceitar o padrão. Para a passphrase, pode deixar em branco ou definir uma senha extra para mais segurança.

Adicionando a chave ao agente

ssh-add ~/.ssh/id_ed25519

Copiando a chave pública

cat ~/.ssh/id_ed25519.pub

Copia todo o output — começa com ssh-ed25519 e termina com seu e-mail.

Adicionando no GitHub

  1. Acessa github.com/settings/keys
  2. Clica em New SSH key
  3. Dá um nome descritivo, ex: WSL2 Ubuntu - Windows 11
  4. Cola a chave e clica em Add SSH key

Validando a conexão

ssh -T git@github.com

A resposta esperada é:

Hi gsfalcon! You've successfully authenticated, but GitHub does not provide shell access.

SSH funcionando! A partir de agora você pode clonar, push e pull via SSH sem precisar digitar senha.


Visão geral do setup

Windows 11
└── WSL2
    └── Ubuntu 24.04
        ├── Zsh
        │   └── Oh My Zsh
        │       ├── Tema: Agnoster
        │       └── Plugins: git, ssh-agent, autosuggestions, syntax-highlighting
        └── SSH → GitHub

Referência rápida

Comando O que faz
wsl Abre o Ubuntu no PowerShell
wsl --shutdown Para todas as instâncias WSL
wsl --update Atualiza o kernel do WSL
source ~/.zshrc Recarrega as configs do Zsh
ssh -T git@github.com Testa a conexão SSH com o GitHub
ssh-add -l Lista as chaves carregadas no agente

Troubleshooting

Terminal mostrando ? ou caracteres estranhos no Agnoster A fonte Powerline não está configurada no Windows Terminal. Revisa a instalação da MesloLGS NF.

ssh-add retorna Could not open a connection to your authentication agent O agente SSH não está rodando. Inicia manualmente: eval "$(ssh-agent -s)" e depois ssh-add ~/.ssh/id_ed25519

wsl --install retorna erro de virtualização Entra na BIOS (geralmente Del ou F2 no boot) e habilita Intel VT-x ou AMD-V nas configurações de CPU.