implant ssh-key

Gerencia chaves SSH no authorized_keys do servidor.

Uso

implant ssh-key [OPTIONS]

Flags

Flag Descricao
--add-public-key <KEY> Adiciona chave publica diretamente
--add-public-key-url <URL> Busca chave publica de uma URL (somente https://) e adiciona
--list Lista as chaves do servidor central no authorized_keys
--remove <ID> Remove chave por comentario ou fingerprint parcial
--whitelist-ip <IP> Adiciona IP a whitelist (fail2ban, UFW, SSH, rate limit do implant). Repetivel: --whitelist-ip IP1 --whitelist-ip IP2. Pode ser usada sozinha, sem --add-public-key
--alias <NAME> Nome do alias sugerido (padrao: hostname)

Exemplos

Adicionar chave publica do servidor central

implant ssh-key --add-public-key "ssh-ed25519 AAAA... user@central"

Adicionar chave de uma URL

implant ssh-key --add-public-key-url "https://keys.example.com/central.pub"

Adicionar com whitelist e alias

implant ssh-key --add-public-key "ssh-ed25519 AAAA..." --whitelist-ip 203.0.113.10 --alias staging

Whitelist de varios IPs (sem adicionar chave)

implant ssh-key --whitelist-ip 203.0.113.10 --whitelist-ip 203.0.113.11

Listar chaves

implant ssh-key --list

Remover chave

implant ssh-key --remove "user@central"

Modelo de Funcionamento

O Implant gerencia chaves no modelo servidor central -> servidores gerenciados:

  1. O servidor central tem uma chave privada SSH
  2. O Implant adiciona a chave publica correspondente ao authorized_keys dos servidores gerenciados
  3. O servidor central pode entao acessar os servidores via SSH

Fluxo

Servidor Central                    Servidor Gerenciado
(chave privada)                     (authorized_keys)
     |                                    |
     |  implant ssh-key                   |
     |  --add-public-key "..."            |
     |  --whitelist-ip <IP_CENTRAL>       |
     |                                    |
     |          SSH conecta  ------------>|
     |                                    |

Whitelist

A flag --whitelist-ip isenta o IP em 4 camadas:

  1. Fail2Ban: Adiciona ao ignoreip (em jail.local)
  2. UFW: ufw allow from <IP> to any port <porta SSH atual>
  3. SSH: Adiciona ao PerSourcePenaltyExemptList
  4. Rate limit do implant: Adiciona a whitelist do rate-limit (e remove o IP da blocklist, se estiver la)

Camadas ausentes no host (ex.: UFW nao instalado ou inativo, Fail2Ban sem jail.local) sao puladas e marcadas com ⊘. O resumo final lista apenas os alvos em que o IP ficou de fato isento. Se qualquer passo falhar para algum IP, o resumo informa Whitelist FALHOU para N de M IP(s) e o comando sai com codigo diferente de 0 — os demais passos continuam rodando para cada IP.

IP na whitelist tem precedencia sobre a blocklist: a ordem dos ganchos do implant no firewall e whitelist > blocklist > geo-block > rate-limit.

Comentario da Chave

O comentario da chave (ex.: user@host, padrao do ssh-keygen) e usado como identificador. Caracteres fora de [A-Za-z0-9._-] sao convertidos para - (limite de 64 caracteres).