Saltar al contenido
ecdsa.com
OpenSSH client with an SSH agent (ssh-agent, gpg-agent, 1Password, Secretive, Windows OpenSSH agent)SSH

Mensaje de error

sign_and_send_pubkey: signing failed for RSA "/path/to/key" from agent: agent refused operation

También se muestra como

  • sign_and_send_pubkey: signing failed: agent refused operation
  • sign_and_send_pubkey: signing failed for ED25519 "/path/to/key" from agent: agent refused operation

El tipo de clave y la ruta de la identidad varían (`RSA`, `ED25519`, `ECDSA-SK`…). OpenSSH 8.3 y las versiones anteriores imprimían el texto más corto «sign_and_send_pubkey: signing failed: agent refused operation» (comprobado en el código fuente de 7.9 y 8.4).

Qué significa

El servidor aceptó la clave pública ofrecida, así que ssh pidió al agente SSH que firmara el desafío de autenticación, y el agente se negó. La clave existe y el servidor la aceptaría; lo que no llegó a ocurrir es la propia operación con la clave privada. Los agentes se niegan cuando necesitan una interacción del usuario que no pueden obtener (una confirmación, un PIN, un toque) o cuando el material de clave que hay detrás de la clave listada ya no se puede usar.

Por qué ocurre

Cómo solucionarlo

  1. 1.

    Averiguar qué agente responde y volver a cargar la clave

    `SSH_AUTH_SOCK` indica qué agente está en uso; `ssh-add -l` lista lo que contiene. Eliminar la clave y volver a añadirla borra las entradas obsoletas.

    bash
    echo "$SSH_AUTH_SOCK"      # which agent answers: ssh-agent, gpg-agent, 1Password, ...
    ssh-add -l                 # keys the agent holds
    ssh-add -D && ssh-add ~/.ssh/id_ed25519   # reload a key that the agent cannot use anymore
  2. 2.

    Dar a gpg-agent una terminal para las solicitudes

    Cuando gpg-agent sirve claves SSH, muestra las solicitudes de PIN en la TTY que se le indicó; actualízalo desde el shell actual.

    bash
    # gpg-agent as SSH agent: tell it which terminal can show the PIN/confirmation prompt
    export GPG_TTY=$(tty)
    gpg-connect-agent updatestartuptty /bye

Errores relacionados

Explorar toda la base de datos de errores de firma