sshControl

Gerenciador de conexões SSH com interface interativa

Instalação Rápida

curl -fsSL https://sshcontrol.alexeiev.me/install | bash

Suporta Linux e macOS (Intel e Apple Silicon)

Características

🖥

Modo Interativo (TUI)

Menu visual para seleção de hosts com filtro por tags

Modo Direto

Conecte rapidamente via linha de comando

🔗

Jump Hosts

Suporte completo para conexões via bastion/jump hosts

🏷

Tags para Hosts

Agrupe hosts por tags e execute comandos em lote por grupo

🌐

Proxy Reverso

Compartilhe proxy HTTP/HTTPS/FTP da máquina local com hosts remotos

📦

Execução em Lote

Execute comandos em múltiplos hosts simultaneamente

🔒

Autenticação Flexível

Suporte para chaves SSH, SSH Agent e senha

🔑

Auto-Instalação de Chaves

Instala automaticamente sua chave pública no servidor após primeira conexão

📝

Auto-Criação de Hosts

Salva automaticamente hosts não cadastrados no config.yaml

📁

Cópia de Arquivos

Transferência de arquivos via SFTP com suporte a múltiplos hosts

🔒

Controle de Senha

Flag -a para solicitar senha antecipadamente (ideal para automações)

🔄

Auto-Atualização

Atualize para a versão mais recente com um comando

Exemplos de Uso

Modo Interativo

sc
sc -u admin
sc -j production-jump
sc -p

Conexão Direta

sc webserver
sc 192.168.1.50
sc ubuntu@host:2222

Via Jump Host

sc -j production-jump webserver
sc -j 1 webserver
sc -j 1 -p webserver

Comando Remoto

sc -c "uptime" webserver
sc -j 1 -c "df -h" app-server

Múltiplos Hosts

sc -c "df -h" -l web1 web2 web3
sc -a -c "uptime" -l web1 web2

Usando Tags

sc -c "uptime" -l @web
sc -c "df -h" -l @production
sc -s @ansible

Download de Arquivos

sc cp down webserver /var/log/app.log
sc cp down -r webserver /etc/nginx/ ./
sc cp down -j 1 db /backup/dump.sql

Upload de Arquivos

sc cp up ./config.yaml webserver
sc cp up -l web1 web2 ./script.sh /opt/
sc cp up -r ./dist/ /var/www/ webserver

Comandos Úteis

sc -s
sc -s @production
sc --version
sc update
sc man

Exemplo de Configuração

config:
  default_user: ubuntu
  auto_create: false
  dir_cp_default: ~/sshControl
  proxy: "192.168.0.1:3128"
  proxy_port: 9999
  users:
    - name: ubuntu
      ssh_keys:
        - ~/.ssh/id_rsa
        - ~/.ssh/id_ed25519
  jump_hosts:
    - name: production-jump
      host: jump.production.example.com
      user: ubuntu
      port: 22

hosts:
  - name: webserver
    host: 192.168.1.50
    port: 22
    tags:
      - web
      - production
  - name: database
    host: 192.168.1.51
    port: 22
    tags:
      - db
      - production

Arquivo de configuração: ~/.sshControl/config.yaml

Outras Opções de Instalação

Instalação Customizada

# Instalar em diretório específico
curl -fsSL https://sshcontrol.alexeiev.me/install | bash -s -- --dir=$HOME/.local/bin

# Ver opções disponíveis
curl -fsSL https://sshcontrol.alexeiev.me/install | bash -s -- --help

Instalação Manual

Baixe o binário pré-compilado das releases

Compilar do Código

git clone https://github.com/alexeiev/sshControl.git
cd sshControl
make build