SSH e Trabalho Remoto
Chaves SSH, tmux, túneis e saltos de bastion - como desenvolvedores Python acessam APIs de staging, rastreiam logs do journald e fazem port-forward de bancos de dados sem deixar chaves sensíveis em máquinas compartilhadas.
Busque em todas as páginas da documentação
Chaves SSH, tmux, túneis e saltos de bastion - como desenvolvedores Python acessam APIs de staging, rastreiam logs do journald e fazem port-forward de bancos de dados sem deixar chaves sensíveis em máquinas compartilhadas.
ssh -A -J bastion@jump.acme.com deploy@staging-api.internal
tmux new -s triage
sudo journalctl -u billing-api -fQuando usar isso:
uv run de longa duração com tmux seguro contra desconexão# ~/.ssh/config
Host bastion
HostName jump.acme.com
User ubuntu
IdentityFile ~/.ssh/id_ed25519
Host staging-api
HostName 10.0.2.15
User deploy
ProxyJump bastion
LocalForward 15432 staging-db.internal:5432
# Conecta e faz forward do DB para psql local
ssh staging-api
# outro terminal:
psql "postgresql://user@localhost:15432/billing"
# Sessão tmux sobrevive ao sono do laptop
tmux new -s migrate
uv run alembic upgrade head
# desanexar: Ctrl-b dO que isso demonstra:
ProxyJump via bastion sem SSH duplo manualLocalForward mapeia DB remoto para localhostHost na configuração-A faz forward do agente para git pull no servidor remoto - use com cautela.| Etapa | Comando |
|---|---|
| Testar conexão | ssh -G staging-api configuração em seco |
| Iniciar sessão | tmux new -s work |
| Seguir logs | journalctl -f |
| Copiar artefato | scp -J bastion file deploy@host:/tmp/ |
# Verificação de saúde remota em uma linha
ssh staging-api 'curl -sf http://localhost:8000/health'
# Sincronizar arquivo de ambiente de forma segura (evite se o arquivo contiver segredos - use vault)
scp -J bastion .env.example deploy@staging-api:/opt/billing-api/-A em produção, a menos que seja necessário.127.0.0.1:15432:....known_hosts por ambiente.rsync -e ssh para sincronização de artefatos grandes.| Alternativa | Usar Quando | Não Usar Quando |
|---|---|---|
| AWS SSM Session Manager | Sem chaves SSH em VMs | Apenas SSH on-prem |
| Teleport / Boundary | Acesso privilegiado auditado | Bastion pequeno para equipe é suficiente |
| GitHub Codespaces | Ambiente de desenvolvimento na nuvem | Acesso a dados de produção proibido |
| VPN | Acesso a toda a sub-rede | Apenas um forward de DB necessário |
Ed25519 é o padrão para novas chaves - mais curta, segura; RSA apenas para sistemas legados.
Integração com o Keychain --apple-use-keychain armazena a senha de forma segura.
tmux é o padrão moderno; mesmo objetivo de persistência.
mosh usa roaming UDP - bom para viagens; requer pacote no servidor.
ssh -R 8080:localhost:8000 expõe um FastAPI local temporariamente - risco de segurança, limite o tempo de uso.
Usa a mesma configuração SSH; certifique-se de que o servidor remoto tenha uv e o projeto clonado.
sftp é interativo; scp é para uso único - rsync é melhor para diretórios de deploy.
Host github.com-work com IdentityFile na configuração SSH para cada organização.
Algumas conformidades exigem script ou gravação de sessão teleportada em produção.
AddressFamily inet explícito se o roteamento v6 estiver quebrado na rede corporativa.
Versões da Stack: Esta página foi escrita para Python 3.14.0 (estável 3.14, manutenção 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+ e uv 0.6+.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026