>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
Rust

Como organizar dezenas de servidores e esquecer de editar manualmente o config do SSH

Quem costuma criar VMs na nuvem ou mantém um servidor em casa sabe que o arquivo ~/.ssh/config vai se tornando uma bagunça aos poucos. Endereços IP antigos de instâncias Hetzner deletadas há muito tempo, aliases esquecidos e cadeias de ProxyJump se acumulam. Depois de mais um Terraform run, você precisa abrir o console da nuvem novamente, pegar o IP e adicionar o host manualmente.

Recentemente descobri o purple — um gerenciador TUI open-source para SSH escrito em Rust. O autor do projeto se deparou exatamente com a mesma rotina e decidiu criar uma interface de terminal conveniente que cuida da sincronização da infraestrutura.

demo do cliente SSH purple no terminal

Como funciona por baixo dos panos

A principal característica do utilitário é que ele não tenta inventar um formato fechado próprio ou esconder configurações em um banco de dados SQLite. O programa analisa diretamente seu ~/.ssh/config, preservando cuidadosamente comentários, indentação, diretivas de Include e quaisquer parâmetros não-padrão. Todas as alterações são gravadas de volta no mesmo arquivo.

A interface é construída sobre a biblioteca Ratatui. É um TUI rápido e responsivo como um binário único, sem daemons ou serviços em segundo plano. O repositório já possui mais de 7300 testes, com código-fonte disponível sob a licença MIT.

lista de hosts do purple com painel de detalhes

Sincronização com provedores de nuvem

Basta fornecer o token de API do provedor, e a lista de instâncias é importada para o config automaticamente. Atualmente, 17 plataformas são suportadas, incluindo AWS, GCP, Azure, Hetzner, DigitalOcean, Proxmox e Teleport. Você pode conectar múltiplas contas de uma vez.

lista de provedores de nuvem do purple

Quando você desliga um servidor, o utilitário o marca como obsoleto, então endereços inativos não poluem a lista. Cada card de host mostra um resumo detalhado: status de disponibilidade, rota de conexão, histórico de atividade do último ano, tags e serviços em execução.

Navegação rápida e busca

Pressionar : abre uma barra de busca rápida no estilo command palette (como Cmd+K em editores modernos). A busca procura por hostnames, usernames, parâmetros de ProxyJump e tags. Filtros como user:, proxy: ou tag: estão disponíveis para filtrar o ruído em poucas teclas.

Jump bar do purple

Gerenciamento de containers sem agentes

Um recurso separado e útil é a aba com containers Docker e Podman em toda sua infraestrutura.

aba Containers do purple

O programa não requer a instalação de agentes de terceiros ou abertura de portas web em servidores remotos. Toda interação acontece através de comandos SSH padrão. Direto da interface você pode:

  • ver uma lista unificada de containers de todos os servidores
  • ler logs em tempo real
  • reiniciar e parar containers
  • entrar em um container via exec
  • reiniciar serviços do Docker Compose individualmente

Monitoramento de túneis e execução de comandos

Normalmente túneis SSH ficam rodando em segundo plano como processos invisíveis. Aqui, cada forwarding Local, Remote e Dynamic SOCKS é exibido claramente: você pode ver velocidade de transferência de dados, atividade dos canais, uptime e até o processo local específico que está empurrando o tráfego.

detalhes de túnel do purple

Se você precisa aplicar um comando em um grupo de servidores, a seção de snippets é útil. Antes de executar, o utilitário mostra o blast radius para evitar atingir instâncias extras acidentalmente, e então salva o histórico de execuções bem-sucedidas e com falha.

detalhes de snippet do purple

Trabalhando com chaves e Vault

Uma aba separada coleta todas as chaves do diretório ~/.ssh. O utilitário avalia sua força criptográfica, mostra a imagem randomart e lista os servidores onde a chave funciona. Pressionar p permite distribuir a chave pública para servidores sem ciclos manuais com ssh-copy-id.

detalhes de chave do purple

Para quem usa HashiCorp Vault, há suporte para certificados SSH de curta duração. A interface exibe uma barra de tempo restante para o certificado, então um acesso expirado inesperadamente não vai surpreender.

Vault SSH do purple

Outros extras úteis: um gerenciador de arquivos dual-pane integrado para transferências SCP, integração com gerenciadores de senhas (1Password, Bitwarden, Keychain do sistema) e seu próprio servidor MCP para conectar a assistentes de IA como Claude Code ou Cursor.

Como instalar

Instalação rápida via script:

curl -fsSL getpurple.sh | sh

Ou via gerenciadores de pacotes:

# macOS (Homebrew)
brew install erickochen/purple/purple

# Cargo
cargo install purple-ssh

# Arch Linux (AUR)
yay -S purple-bin

Após a instalação, execute o comando purple. De qualquer tela você pode pressionar ? para abrir a ajuda de atalhos de teclado.

Para quem é útil

O projeto preenche bem a lacuna entre comandos CLI simples e clientes pesados pagos como Termius. Se você frequentemente gerencia VMs na nuvem, mantém um homelab, ou simplesmente está cansado de ordenar manualmente endereços IP de servidores, o purple economiza muito tempo e mantém os configs limpos.

Projetos relacionados