Termius no iPhone: SSH no homelab sem abrir porta

Acesso o homelab pelo iPhone com o Termius grátis: chave SSH gerada no próprio app e conexão pelo Cloudflare One, sem nenhuma porta aberta em casa.

Publicado
Leitura
5 min
Neste post

Muita coisa do homelab eu resolvo pelo celular: um iPhone com o Termius, inclusive de fora de casa.

O resumo da minha experiência cabe numa frase: tendo acesso SSH, tudo se resolve. Neste post conto como montei esse acesso, com chave SSH criada no próprio Termius e conexão pelo Cloudflare Tunnel, sem abrir nenhuma porta no roteador.

Por que o Termius #

O Termius é um cliente SSH com app para iOS, Android e desktop. Uso a versão gratuita e, para o meu uso, ela basta. Nunca usei outro app de SSH no celular, então não tenho comparação para fazer; o que posso dizer é que nunca tive motivo para procurar outro.

Pela página de preços do Termius, o plano gratuito (Starter) inclui:

  • cofre local (as chaves e os hosts ficam no aparelho);
  • SSH e SFTP;
  • port forwarding;
  • autocompletar com IA.

Sincronizar o cofre entre celular e computador e os snippets ficam nos planos pagos. Para o meu uso, isso não fez falta.

A chave SSH nasce no celular #

Em vez de copiar uma chave privada do computador para o celular, eu gerei a chave no próprio Termius. A documentação dele explica o caminho: no Keychain, você gera uma chave nova, dá um nome, escolhe o tipo (Ed25519 é uma boa escolha hoje) e, se quiser, uma senha para ela.

Depois, a parte pública da chave vai para o servidor, no arquivo authorized_keys do usuário. O Termius tem uma opção para exportar a chave direto para um host já cadastrado. Se preferir fazer à mão, é colar a linha da chave pública no servidor:

mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo 'ssh-ed25519 AAAA...sua-chave-publica... termius-iphone' >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Assim, a chave privada nunca sai do celular. Se eu perder o aparelho, basta apagar aquela linha do authorized_keys e a chave deixa de valer, sem afetar as chaves dos outros dispositivos.

Como eu chego em casa estando fora #

Aqui está a parte que mais mudou a minha vida no homelab. Eu já contei que sofri com bots na porta 22 e que o problema só acabou quando tirei o SSH da internet com o Cloudflare Tunnel e o ProxyJump. O acesso pelo celular segue a mesma ideia: nenhuma porta aberta no roteador.

No iPhone, uso o app Cloudflare One (o cliente que antes se chamava WARP). Com ele ligado e o aparelho registrado na minha conta da Cloudflare, o tráfego para a rede de casa passa pelo túnel que o cloudflared mantém de dentro do homelab. Para o Termius, é como se eu estivesse na rede local.

Pela documentação da Cloudflare, esse desenho tem três peças:

  1. Uma rota de rede privada no túnel. Em Networking > Routes, você cria uma rota do tipo Tunnel CIDR apontando a faixa da sua rede (por exemplo, 192.168.1.0/24) para o túnel.
  2. Ajuste no Split Tunnels. No modo padrão, Exclude, o cliente deixa as faixas privadas (como 192.168.0.0/16) fora do túnel. Para alcançar a sua rede, a faixa dela precisa sair dessa lista de exclusão.
  3. O aparelho registrado no Cloudflare One, com regras de quem pode se registrar e, de preferência, políticas do Gateway liberando só o que precisa.

Um detalhe da documentação que vale saber: o servidor SSH vê a conexão chegando do IP da máquina onde roda o cloudflared, e não do celular. Se você monitora os acessos SSH, como eu faço no jump server, os registros vão mostrar esse IP.

O que fica salvo no Termius #

No Termius, cada host tem endereço, usuário e a chave que ele usa. A chave que gerei no Termius está liberada no host do Proxmox. Para os outros acessos de fora, vale o desenho do post sobre SSH: o jump server é a porta de entrada e os outros hosts ficam atrás dele.

Com acesso SSH, dá para resolver quase tudo pelo celular:

  • ver se um serviço está de pé e reiniciar quando precisa;
  • ler logs com journalctl para entender um problema;
  • conferir o resultado do backup da noite;
  • retomar uma sessão do Claude Code em um container, assunto de um post desta semana.

Para reiniciar e investigar um serviço, dois comandos resolvem a maior parte:

systemctl status nome-do-servico
journalctl -u nome-do-servico -n 50 --no-pager

Cuidados com o celular como chave de casa #

Celular se perde, quebra e é roubado. Algumas coisas que valem a pena:

  • Bloqueio de tela forte e biometria no aparelho.
  • Uma chave por aparelho. Nunca reaproveite a chave do computador no celular. Se um aparelho sair de cena, você revoga só ele.
  • Senha na chave, se quiser uma camada a mais. O Termius pergunta na hora de gerar.
  • Nada de senha do root por SSH. Com chave funcionando, desligue o login por senha no sshd_config (PasswordAuthentication no).

Resumindo #

  • O Termius grátis resolve SSH pelo celular; sincronização e snippets ficam nos planos pagos.
  • Gere a chave no próprio celular e mande só a parte pública para o servidor.
  • Cloudflare One + Cloudflare Tunnel dão acesso à rede de casa sem abrir porta no roteador; lembre de tirar a faixa da sua rede da lista de exclusão do Split Tunnels.
  • Restrinja quem entra, porque o celular vira uma chave da sua casa.

Hoje, se alguma coisa para no homelab, eu não preciso estar em casa nem perto de um computador. Com o celular e acesso SSH, eu resolvo de onde estiver.

Fontes e documentação