O SSH (Secure Shell) é um protocolo criptográfico usado para comunicação segura entre máquinas numa rede insegura. No contexto do GitHub, o SSH permite autenticação forte baseada em chaves, eliminando o uso de senha.
🔒 Desde 2021, o GitHub aboliu autenticação por usuário + senha para operações Git.
- Autenticar o utilizador sem senha
- Garantir segurança criptográfica
- Facilitar automação (CI/CD, scripts, bots)
- Eliminar prompts repetitivos de autenticação
- Identificar quais computadores podem agir em teu nome
[ Teu computador ] --(chave privada)--> [ GitHub ]
↑
nunca sai daqui
- 🔑 Chave privada → fica no teu computador
- 🔓 Chave pública → é cadastrada no GitHub
- GitHub nunca recebe a chave privada
- Mais seguro
- Mais rápido
- Chave menor
- Padrão moderno
- Mais antigo
- Usado apenas se Ed25519 não for suportado
ssh-keygen -t ed25519 -C "your_github_email@example.com"ssh-keygen -t rsa -b 4096 -C "your_github_email@example.com"Durante o processo:
- Pressiona Enter para aceitar o caminho padrão
- Opcionalmente define uma passphrase (recomendado)
~/.ssh/
├── id_ed25519 # chave privada (NUNCA compartilhe)
└── id_ed25519.pub # chave pública
C:\Users\SEU_USUARIO\.ssh\
-
Acesse: 👉 https://github.com/settings/ssh/new
-
Em Title, dê um nome identificável Ex:
Laptop Ubuntu,PC Casa,WSL -
Em Key, cole o conteúdo do ficheiro:
cat ~/.ssh/id_ed25519.pub -
Clique em Add SSH key
ssh -T git@github.comResposta esperada:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
✅ SSH configurado com sucesso.
git clone git@github.com:USERNAME/REPOSITORIO.gitgit remote -vgit remote set-url origin git@github.com:USERNAME/REPOSITORIO.git| Critério | SSH | HTTPS |
|---|---|---|
| Segurança | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| Senha | ❌ | ❌ (token) |
| Automação | Excelente | Limitada |
| CI/CD | Ideal | Menos prático |
| Profissional | ✅ |
👉 SSH é o padrão profissional
Evita digitar a passphrase repetidamente.
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ed25519- ✔️ Uma chave por máquina
- ✔️ Use passphrase
- ❌ Nunca reutilize chave privada
- ❌ Nunca comite
.ssh/ - ❌ Nunca envie chave privada por email/chat
SSH não é Git, mas:
- é o canal seguro do Git
- é a identidade criptográfica do programador
- é a base de workflows modernos
Sem SSH:
- Git funciona
- Mas não escala profissionalmente
- SSH substitui senhas no GitHub
- Autenticação é feita por chaves criptográficas
- Chave privada nunca sai da máquina
- SSH é essencial para workflows sérios
- Todo engenheiro deve dominar isso cedo