Frage bzgl. gpg-agent

Werner Koch wk at gnupg.org
Di Mai 21 15:40:02 CEST 2019


Hallo Hanno!

On Mon, 20 May 2019 22:15, wagner at rince.de said:

> - Rechner A: Server mit Emails (Debian Linux)
> - Rechner B: Laptop der sich via ssh auf Rechner A einloggt (Kali Linux)
> - Smartcard in Form eines yubikey Neo.

Habe ich jahrelang auch so ähnlich gemacht.  Ich habe dabei auf A "emacs
--daemon" laufen lassen und mich von B über ssh und emacsclient daran
bedient.  Das mit dem emacsclient ist ganz praktisch aber man kann
natürlich jeden Client auf A per ssh starten.  Crypto habe ich direkt
auf dem auf dem Server (eigentlich mein Desktop im Büro) gemacht;
ledigich das pinentry musste ich per updatestartuptty umbiegen.  Aber
richtig; das geht dann nicht per smartcard.

> Beide Rechner haben in ~/.gnupg/ denselben Public- und Secret keyring
> liegen; die habe ich via scp kopiert.

Secret Keys brauchst Du auf dem Server (A) nicht und könnten eventuell
ein Problem sein - ich habe das aber nicht getestet.

> Ich möchte nun von Rechner B aus die Mails die auf Rechner A liegen
> entschlüsseln und anzeigen lassen (ssh, tmux und darin mutt).
> Ich habe mir dafür die Webseite https://wiki.gnupg.org/AgentForwarding
> angeschaut und auch ssh und den gpg-agent entsprechend konfiguriert,
> zumindest bin ich der Meinung.

Yep.  Alles korrekt.

> Was mache ich da falsch? Wie kann ich debuggen was da funktioniert
> oder auch nicht? Kann ich rausfinden ob der auf Rechner A laufende gpg

$ gpg-connect-agent 'getinfo restricted' /bye

Auf dem Server sollte OK anzeigen - dann ist der Agent im restricted
mode und das forwarding aktiv.  Mit

Wenn Du bei gpg aufrufen auf dem Server "--debug ipc" hinzufügts, sieht
Du die Kommunikation mit dem (remote) agent.  Praktischer ist es aber
folgendes auf dem Cleint (laptop) zu machen:

  $ echo >>./gnupg/gpg-agent.conf 'socket://'
  $ echo >>./gnupg/gpg-agent.conf 'debug ipc'
  $ echo >>./gnupg/gpg-agent.conf 'verbose'
  $ gpgconf --reload gpg-agent

Dann in einem andere tty

  $ watchgnupg --time-only --force $(gpgconf --list-dirs socketdir)/S.log

laufen zu lassen.   Du solltest dann sehen was gpg-agent loged.  Ist
einfacher als tail(1) und Die config Optionen auch in scdaemon und
dirmngr einbauen, womit DU das dann schön syncronisiert siehts.

> Wenn ich auf Rechner B ein "gpg --card-status" eingebe, zeigt er mir
> die Daten des Yubikey an, der sieht ihn also und kann ihn auslesen.

Sieht gut aus.

> Nur Rechner A scheint nicht mitzubekommen dass es eine Remote
> gpg-agent gibt der ihm helfen könnte...

Probier dort mal gpg-connect-agent oder aber

  fortune | gpg -eavs MEINKEY --debug ipc

Welchen Socket hast Du auf dem Server geforwarded?  Falls ein
/var/run/user/NNNN  existiert wird der socket darunter erwartet und
nicht in ~/.gnupg/ (wg. NFS etc).  Testen mit

  gpgconf --list-dirs

und es sollte besser kein gpg-agent auf dem Server laufen.


Shalom-Salam,

   Werner

-- 
Die Gedanken sind frei.  Ausnahmen regelt ein Bundesgesetz.
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 227 bytes
Beschreibung: nicht verfügbar
URL         : <https://lists.gnupg.org/pipermail/gnupg-de/attachments/20190521/0dd75f65/attachment.sig>


Mehr Informationen über die Mailingliste Gnupg-de