Port-forward via Teleport (tsh) com seleção interativa de host por fzf.
Wrapper em Bash sobre tsh ssh -N -L que adiciona:
- Seleção de host por fuzzy finder quando o destino não é informado.
- Modo detached (
-d) para rodar forwards em background, com pidfile, logfile e infofile em/tmp. - Subcomandos
lsekillpara gerenciar os forwards ativos.
install -m 0755 tshpf ~/.local/bin/tshpfGaranta que ~/.local/bin esteja no PATH.
tshpf <local_port>:<remote_host>:<remote_port> [tsh_host] [-d] [-- extras]
tshpf ls # lista forwards ativos
tshpf kill <porta|all> # encerra forward(s) em background
Se tsh_host for omitido, tshpf chama tsh ls e abre o fzf para escolher o host.
Argumentos após -- são repassados diretamente para tsh ssh.
# Foreground, com seleção de host pelo fzf
tshpf 5432:db.internal:5432
# Foreground, host informado direto
tshpf 6379:redis.svc:6379 bastion-prod
# Background (detached)
tshpf -d 8080:localhost:80 web-01
# Listar forwards em background
tshpf ls
# Encerrar um forward específico
tshpf kill 8080
# Encerrar todos
tshpf kill allCom -d, o forward roda via setsid em background. Para cada porta local são criados em /tmp:
tshpf-<porta>.pid— PID do processotshpf-<porta>.info— descrição (<forward> via <host>)tshpf-<porta>.log— saída detsh ssh
tshpf ls limpa automaticamente arquivos de forwards mortos (stale).
- O login SSH é feito como
ubuntu@<host>(fixo no script). - A spec de forward é validada contra
^[0-9]+:[^:]+:[0-9]+$. - Se não houver sessão Teleport ativa,
tshpfaborta pedindotsh login.