Ir al contenido

ssh-agent gobernado

kovra puede actuar como ssh-agent: habla el protocolo ssh-agent sobre un socket local y firma cada desafío de autenticación en memoria con un keypair custodiado. La clave privada nunca sale de kovra y nunca toca ~/.ssh.

kovra ssh-agent corre en primer plano, imprime el socket a exportar y sirve hasta que se lo detenga. Se niega a arrancar si $SSH_AUTH_SOCK ya está definido — nunca secuestra otro agente:

zsh
~ % kovra ssh-agent
kovra ssh-agent listening on ~/.vaults/agent.sock
Export it in the shells that should use kovra as their agent:
export SSH_AUTH_SOCK=~/.vaults/agent.sock
Serving in the foreground — press Ctrl-C to stop.

Exportar el socket en otro shell y usar SSH normalmente; el desafío de cada conexión es firmado por kovra:

Ventana de terminal
export SSH_AUTH_SOCK=~/.vaults/agent.sock
ssh deploy@server

Una clave high/prod pide hacer bioProve en cada firma (una verificación rápida en la ventana de revisión de kovra — Touch ID, o un código y la contraseña de su sesión en una Mac sin Touch ID) y queda auditada; las claves low/medium firman en silencio. Qué claves servirá el agente lo gobierna el scope en <vault-root>/agent.toml, el mismo modelo de scope que usan los agentes.

El diálogo indica el proceso que lo pide — identificado desde el kernel en cada conexión — y qué se está firmando:

  • SSH login as <user> to <host> (SHA256:…) cuando el cliente vinculó la sesión al host ([email protected], OpenSSH 8.9 o posterior) y la firma de la clave del host es válida;
  • SSH login as <user> (the client did not report the host) en caso contrario;
  • a signature in the <namespace> namespace para una firma SSHSIG (por ejemplo, la firma de commits de git).

Si se prefiere mantener el agente habitual, kovra ssh-add carga una clave custodiada en el ssh-agent en ejecución, solo en memoria — nunca escrita en ~/.ssh. Rechaza las claves high, inject-only y de prod: entrega la clave privada misma a lo que responda en $SSH_AUTH_SOCK, así que esas claves firman solo a través de kovra ssh-agent.

Ventana de terminal
kovra ssh-add secret:dev/ssh/deploy

kovra gobierna el evento de autenticación — el momento en que la clave prueba la identidad — no la sesión SSH que se abre después. Una vez que una conexión queda autorizada, lo que ocurre dentro de esa sesión es entre el usuario y el host remoto. kovra hace que la clave sea imposible de copiar y que su uso sea atribuible; no se interpone en medio del shell.