gpg-agent rifiuta le chiavi SSH con il rapporto ssh-add "operazione rifiutata dall'agente"


12

Sto usando openssh7.5p1 e gnupg 2.1.21 su arch linux (queste sono le versioni predefinite fornite con arch). Vorrei usare gpg-agentcome agente SSH. Ho inserito quanto segue nel mio ~/.gnupg/gpg-agent.conf:

pinentry-program /usr/bin/pinentry-qt
enable-ssh-support

Arch avvia automaticamente un agente gpg da systemd, quindi ho impostato

export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh"

Quando corro ssh-add -l, non riporta identità e pssegnala un gpg-agent --supervisedprocesso come mi sarei aspettato.

Sfortunatamente, quando corro ssh-add, indipendentemente dal tipo di chiave, non funziona. Ecco un esempio di come ho provato dsa:

$ ssh-keygen -f testkey -t dsa -N ''
Generating public/private dsa key pair.
Your identification has been saved in testkey.
Your public key has been saved in testkey.pub.
$ ssh-add testkey
Could not add identity "testkey": agent refused operation

Tutte le altre funzioni di gpg funzionano correttamente (crittografia / decrittografia / firma). Inoltre, le chiavi che ho generato funzionano bene se le uso direttamente con ssh e funzionano correttamente se ssh-agenteseguo quella fornita con openssh.

La documentazione dice che ssh-adddovrebbe aggiungere le chiavi ~/.gnupg/sshcontrol, ma ovviamente non sta succedendo nulla.

La mia domanda: qual è il modo più semplice per caricare una chiave generata da openssh ssh-keygenin gpg-agent, e qualcuno può per favore tagliare e incollare una sessione terminale mostrando come funziona?


La risposta accettata mi ha aiutato, grazie per aver sollevato questa domanda. Questo succede ogni tanto per me, c'è qualche soluzione permanente?
gf_

Risposte:


27

Apparentemente la risposta doveva essere:

echo UPDATESTARTUPTTY | gpg-connect-agent

Non ho idea del perché il programma pinentry ha funzionato bene per altri usi come la decrittografia dei file, ma non ha funzionato ssh-add.

Anche se ora funziona, crea anche una copia della chiave privata ssh che non compare sotto gpg -Kv, e inoltre non sembra permetterti di cambiare la passphrase sulla tua chiave privata (dato che non puoi modificarla con --edit-key) . Fondamentalmente sono piuttosto scontento del modo in cui gpg-agentoffre una scarsa visibilità su dove vengono copiati i tuoi segreti. Se rispondi a questa domanda perché speravi gpg-agentpotesse essere un'alternativa migliore a ssh-agent, allora ti incoraggio a attenersi ssh-agentinvece di provare la mia risposta. Il motivo principale da preferire gpg-agentè se è necessario per l'uso della smart card.


Dove hai trovato questa risposta? Funziona benissimo!
CMCDragonkai,

Grazie per questo, ha funzionato per me. Gestisci questo regolarmente? Ad ogni avvio / login? Qualche idea su una soluzione "corretta"?
gf_


2

Nel mio caso, il problema era il programma pinentry utilizzato. Stavo usando pinentry-emacs. Sembra che non gestisca il prompt della finestra di immissione del doppio campo di testo che si ssh-addinnesca quando usato con gpg-agent.

La rimozione di pinentry-emacs e l'installazione della pinentry GTK hanno risolto il problema qui.


Questo ha finalmente risolto il mio problema dopo aver trovato un sacco di fonti che mi hanno detto di aggiornare la tty di avvio.
William Rosenbloom,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.