Instalación
Pega esto en tu terminal (detecta automáticamente Intel o Apple Silicon):
curl -fsSL https://mbaez-ctech.github.io/lazy-bastion/install.sh | bash
O para instalar una versión específica:
LZB_VERSION=1.2.0 curl -fsSL https://mbaez-ctech.github.io/lazy-bastion/install.sh | bash
Por defecto el binario queda en /usr/local/bin/lzb. Puedes cambiarlo:
LZB_INSTALL_DIR=~/bin curl -fsSL https://mbaez-ctech.github.io/lazy-bastion/install.sh | bash
Prerequisitos macOS
| Herramienta | Instalar | Notas |
|---|---|---|
| AWS CLI v2 | aws.amazon.com | Requerido para SSO |
| Session Manager Plugin | aws.amazon.com | Túneles SSM |
| lsof | Incluido en macOS | Detección de puertos |
| ssh-keygen | Incluido en macOS | Generación de llaves |
Abre PowerShell como usuario normal (no administrador) y ejecuta:
iwr https://mbaez-ctech.github.io/lazy-bastion/install.ps1 | iex
El binario se instala en %LOCALAPPDATA%\Programs\lzb\lzb.exe y se agrega al PATH del usuario automáticamente.
⚠ Política de ejecución
Si PowerShell bloquea el script, primero corre:
Si PowerShell bloquea el script, primero corre:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Para una versión específica:
$env:LZB_VERSION="1.2.0"; iwr https://mbaez-ctech.github.io/lazy-bastion/install.ps1 | iex
Prerequisitos Windows
| Herramienta | Instalar | Notas |
|---|---|---|
| AWS CLI v2 | aws.amazon.com (MSI) | Requerido para SSO |
| Session Manager Plugin | aws.amazon.com (EXE) | Túneles SSM |
| OpenSSH | Configuración → Apps → Características opcionales | ssh-keygen |
| Windows Terminal | Microsoft Store | Recomendado para la TUI |
Descarga el binario directamente desde GitHub Releases:
| Plataforma | Archivo |
|---|---|
| macOS Apple Silicon | lzb-darwin-arm64 |
| macOS Intel | lzb-darwin-amd64 |
| Linux x86_64 | lzb-linux-amd64 |
| Windows x64 | lzb-windows-amd64.exe |
Luego hazlo ejecutable y muévelo al PATH:
# macOS / Linux
chmod +x lzb-darwin-arm64
sudo mv lzb-darwin-arm64 /usr/local/bin/lzb
Verificar la integridad con el archivo checksums.txt del release:
sha256sum -c checksums.txt --ignore-missing
Configuración
lzb busca config.yml en este orden:
- Variable de entorno
LZB_CONFIG - Junto al binario
- Directorio actual
~/.config/lazy-bastion/config.yml
config.yml de ejemplo
aws:
region: us-west-1 # región de los recursos
account_id: "123456789012" # cuenta AWS (para auto-detectar el perfil SSO)
sso_start_url: "https://d-xxxxxx.awsapps.com/start"
sso_region: us-east-1
profile: "" # vacío = auto-detectar
ssh_key: "~/.ssh/wb-prod" # llave Ed25519 (se genera automáticamente)
tunnels:
- name: "MySQL principal"
instance_id: "i-0abc123"
remote_port: 3306
local_port: 13306
group: db-c1
type: tcp # tcp | http
servers:
- name: "db-c1"
label: "MySQL / Mongo / Redis"
instance_id: "i-0abc123"
tunnel_port: 2202 # puerto local efímero para SSH
ssh_user: ubuntu
private_ip: "172.31.5.49"
Variables de entorno
| Variable | Efecto |
|---|---|
| LZB_CONFIG | Ruta alternativa al config.yml |
| LZB_PROFILE | Fuerza un perfil AWS concreto |
Uso
lzb
Al arrancar, la herramienta:
- Detecta el perfil AWS SSO que corresponde al
account_idconfigurado. - Valida la sesión SSO; si expiró, abre el navegador para hacer login.
- Lanza la TUI.
Permisos AWS requeridos:
El usuario debe pertenecer al grupo SSO
Admin_Tech o BastionAccess.
Atajos de teclado
↑ / k
Mover cursor arriba
↓ / j
Mover cursor abajo
↵ / Space
Túnel: toggle · Servidor: conectar SSH
d
Matar el túnel seleccionado
a
Abrir todos los túneles
x
Cerrar todos los túneles
q / Ctrl+C
Salir (cierra todos los túneles)
Logs
Cada túnel escribe su salida en:
/tmp/lzb-<puerto>.log # túneles TCP/HTTP
/tmp/lzb-ssh-<nombre>.log # túneles SSH