Aller au contenu
ecdsa.com
OpenSSH client with an SSH agent (ssh-agent, gpg-agent, 1Password, Secretive, Windows OpenSSH agent)SSH

Message d’erreur

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

Également affiché sous la forme

  • 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

Le type de clé et le chemin de l’identité varient (`RSA`, `ED25519`, `ECDSA-SK`…). OpenSSH 8.3 et les versions antérieures affichaient le message plus court « sign_and_send_pubkey: signing failed: agent refused operation » (vérifié dans les sources des versions 7.9 et 8.4).

Ce que cela signifie

Le serveur a accepté la clé publique proposée : ssh a donc demandé à l’agent SSH de signer le challenge d’authentification, et l’agent a refusé. La clé existe et le serveur l’accepterait ; c’est l’opération sur la clé privée elle-même qui n’a pas eu lieu. Les agents refusent lorsqu’ils ont besoin d’une interaction de l’utilisateur qu’ils ne peuvent pas obtenir (une confirmation, un code PIN, un toucher), ou lorsque les données de clé derrière la clé listée ne sont plus utilisables.

Pourquoi cela se produit

Comment corriger l’erreur

  1. 1.

    Identifier l’agent qui répond et recharger la clé

    `SSH_AUTH_SOCK` vous indique quel agent est utilisé ; `ssh-add -l` liste ce qu’il détient. Retirer puis rajouter la clé élimine les entrées obsolètes.

    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.

    Donner un terminal à gpg-agent pour ses demandes de saisie

    Lorsque gpg-agent fournit les clés SSH, il affiche les demandes de PIN sur le TTY qui lui a été indiqué ; mettez ce TTY à jour depuis le shell courant.

    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

Erreurs associées

Parcourir toute la base de données des erreurs de signature