Entrar no loop

3 min de leitura

Como dar acesso ao seu servidor para um agente de IA sem perder o controle

Chave, não senha. Os três testes que eu faço antes de dar a um agente de IA acesso a qualquer coisa real: gerenciável, auditável, revogável.

Compartilhar X in
Fonte Hack de servidor com botão de emergência. Imagem gerada por IA.

Um agente de IA fica muito mais útil quando pode mexer no servidor de verdade:
instalar pacote, configurar serviço, emitir certificado, olhar log. E fica
muito mais perigoso também.

A pergunta não é se você deve dar esse acesso. É como dar de um jeito que você
consiga ver, conferir e tirar a qualquer momento. Mostrei isso num vídeo em
que deixei meu agente configurar o próprio servidor e emitir o certificado SSL.
Este artigo explica o raciocínio por trás, que vale para qualquer agente e
qualquer servidor.

O problema: o agente está dentro de uma caixa

No meu caso o agente roda no OpenClaw, numa VPS. O OpenClaw fica dentro de um
container Docker, isolado. Por padrão, ele não enxerga o servidor onde está
rodando.

Isso é bom. É justamente o isolamento que protege o servidor de um agente que
erra. Mas também significa que, se você quer que ele administre a máquina,
precisa abrir uma porta. E a forma como você abre essa porta decide se você
continua no controle.

Chave, não senha

A porta certa é SSH com um par de chaves criptográficas, e não com senha.

Funciona assim:

  1. O agente gera um par de chaves: uma privada e uma pública.
  2. Ele guarda a privada. É com ela que se identifica.
  3. Você coloca a pública no servidor. É isso que autoriza a entrada.

Senha pode vazar, pode ser descoberta por tentativa, pode ser reaproveitada
de outro lugar. Uma chave ed25519 não se adivinha. E o mais importante para
agente de IA: ela é revogável na hora, sem trocar senha de ninguém.

Os três testes de qualquer acesso que você dá a uma IA

Toda vez que você der autonomia a um agente sobre algo real, um servidor, uma
API, uma caixa de e-mail, faça três perguntas. Se alguma resposta for não,
pare e redesenhe.

É gerenciável? Você consegue ver exatamente quem tem acesso? Com chave
SSH, sim: está tudo listado num arquivo só, o authorized_keys.

É auditável? Você consegue saber quando e como o acesso foi usado? Com
SSH, sim: cada conexão fica registrada nos logs do servidor.

É revogável? Você consegue tirar o acesso agora, em segundos? Com chave,
sim: apaga uma linha do authorized_keys e acabou.

Esses três testes são o princípio que eu uso em tudo no projeto do agente
que escreve as notícias deste site. Guarde eles. Valem para muito além de
servidor.

O caminho, resumido

Primeiro, o domínio. No painel de DNS do seu domínio, crie um registro do
tipo A apontando para o IP da VPS. Pode ser o domínio raiz ou um subdomínio.
A propagação leva de minutos a poucas horas.

Depois, a chave. Peça ao agente para gerar o par de chaves e mostrar a
pública. Peça também que ele espere sua confirmação antes de tentar conectar.
Esse "espere" importa: é você quem autoriza, não ele.

Depois, a autorização. No terminal do servidor, acrescente a chave pública
ao authorized_keys e ajuste as permissões da pasta. Um cuidado prático: no
terminal que abre pelo navegador, o colar costuma trazer sujeira junto. Se a
conexão der permissão negada, quase sempre é isso.

Por fim, o trabalho. Com o acesso funcionando, um único pedido basta para
o agente instalar o servidor web, abrir as portas 80 e 443 no firewall,
emitir o certificado SSL automático e apontar o domínio.

Um detalhe que me custou tempo: o OpenClaw da Hostinger já vem com o Traefik
fazendo o papel de proxy. Se o agente tentar instalar outro servidor web por
cima, os dois brigam pela porta 443. A saída é pedir que ele configure o
Traefik que já existe, usando os arquivos de configuração dinâmica em vez de
mexer nos containers.

Se quiser ir um passo além

O jeito mais simples, que é o do vídeo, dá ao agente acesso como root. É o
que funciona sem atrito, e com os três testes acima você continua no
controle.

Mas se o agente só precisa de algumas tarefas, o mais seguro é criar um
usuário dedicado para ele, com permissão só para o que ele precisa fazer.
Assim, um erro do agente tem um estrago limitado, em vez do servidor inteiro.
Menos cômodo, mais seguro, e vale a pena quando o agente passa a rodar
sozinho de madrugada.

Continue daqui

O vídeo completo, com o agente fazendo tudo ao vivo, está no canal:
Deixei meu agente de IA configurar o próprio servidor e emitir o
certificado SSL
.

O guia com todos os prompts e comandos prontos para copiar está na
Biblioteca, dentro do Loop.

E se o seu agente travar em algum passo, abre um loop com a mensagem de erro
completa. Erro de SSH e de certificado costuma ter a mesma meia dúzia de
causas, e eu já bati em quase todas.

Dúvidas

respostas