Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
public:gnupg:gnupg-card_auth [2017/09/14 10:22] jankow@datenkollektiv.netpublic:gnupg:gnupg-card_auth [2020/04/17 11:03] (aktuell) – [Voraussetzungen] jankow@datenkollektiv.net
Zeile 3: Zeile 3:
 ===== Nutzung für ssh ===== ===== Nutzung für ssh =====
  
-<WRAP center round tip 60%> Leider hat sich die Interaktion zwischen gnome-keyring-daemon, gpg-agent und ssh-agent in Debian stretch wiederum geändert. Hinweise dazu gibt es hier:+==== Voraussetzungen ====
  
-  [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=850982|https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=850982]] +**Deaktivierung des ssh-agent**
-  [[https://blog.josefsson.org/2017/06/19/openpgp-smartcard-under-gnome-on-debian-9-0-stretch/|https://blog.josefsson.org/2017/06/19/openpgp-smartcard-under-gnome-on-debian-9-0-stretch/]] +
-  *+
  
-In Stretch ist jetzt die user-Session von systemd verantwortlich für den Start des gpg-agent. Die verschiedenen Anleitungenden gnome-keyring-daemon daran zu hindern, sich für ssh verantwortlich zu fühlen, funktionieren in unseren Setups (unter Mate und Xfce4 allerdings nichtDer entscheidende Hinweise steht unter ''/usr/share/doc/gnupg-agent/README.Debian''+Der gpg-agent ist in der Lageauch ssh-Authentifizierungen zu erledigen - mit den SSH-Schlüsselndie im Gnupg-Keyring oder auf einer Karte abgelegt sind. Dafür muss sich der gpg-agent auch um die SSH-Anfragen kümmernErledigt wird das über die Umgebungsvariable ''SSH_AUTH_SOCK'' die dann z.B. folgenden Wert haben muss: ''/run/user/1000/gnupg/S.gpg-agent.ssh''.
  
-Für xfce und mate muss daher ein+In diesem Fall darf aber der ssh-agent nicht gestartet werden, da dieser die Umgebungsvariable überschreiben würde.
  
-<code> +Leider gibt es keine einheitliche Funktionsweise, wie die Desktop-Umgebungen den ssh-agent starten.
-SSH_AUTH_SOCK=/run/user/$(id -u)/gnupg/S.gpg-agent.ssh +
-</code>+
  
-in die ~/.bashrc geschrieben werdenDamit wird die Umgebungsvariable gesetztmit dem ssh dann den gpg-agent findet, der für die Authentifizierung zuständig sein soll</WRAP>+  * einige werten die ''/etc/X11/Xsession.options'' aus - und suchen dort nach der Zeile ''use-ssh-agent'' (xfce4, frühere Versionen, Mate?, Gnome? 
 +  * andere haben eine eigene Startroutine 
 +  * wieder andere nutzen wohl neuerdings auch den systemd. 
 + 
 +**gnome-keyring-manager darf sich weder für ssh noch für gpg verantwortlich fühlen** 
 + 
 +Noch komplizieter ist die Lage beim gnome-keyring-managerder seinerseits wiederum auch eine Funktioalität sowohl für den ssh-agent als auch für den gpg-agent mitbringt. Damit die gnupg-card und die Authentifizierung mit ssh klappt, müssen diese Komponenten deaktiviert sein - bzw. der gnome-keyring-manager darf gar nicht laufen.
  
   * [[http://www.ozonesolutions.com/programming/2014/04/pgp-smart-card-ssh-login-gpg-agent-ubuntu/|http://www.ozonesolutions.com/programming/2014/04/pgp-smart-card-ssh-login-gpg-agent-ubuntu/]]   * [[http://www.ozonesolutions.com/programming/2014/04/pgp-smart-card-ssh-login-gpg-agent-ubuntu/|http://www.ozonesolutions.com/programming/2014/04/pgp-smart-card-ssh-login-gpg-agent-ubuntu/]]
Zeile 23: Zeile 25:
   * [[https://grepular.com/Smart_Cards_and_SSH_Authentication|https://grepular.com/Smart_Cards_and_SSH_Authentication]]   * [[https://grepular.com/Smart_Cards_and_SSH_Authentication|https://grepular.com/Smart_Cards_and_SSH_Authentication]]
  
-Wir müssen ssh-Support im gpg-agent konfigurieren:+<WRAP center round tip 60%> Leider hat sich die Interaktion zwischen gnome-keyring-daemon, gpg-agent und ssh-agent in Debian stretch wiederum geändert. Hinweise dazu gibt es hier: 
 + 
 +  * [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=850982|https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=850982]] 
 +  * [[https://blog.josefsson.org/2017/06/19/openpgp-smartcard-under-gnome-on-debian-9-0-stretch/|https://blog.josefsson.org/2017/06/19/openpgp-smartcard-under-gnome-on-debian-9-0-stretch/]] 
 + 
 +In Stretch ist jetzt die user-Session von systemd verantwortlich für den Start des gpg-agent. Die verschiedenen Anleitungen, den gnome-keyring-daemon daran zu hindern, sich für ssh verantwortlich zu fühlen, funktionieren in unseren Setups (unter Mate und Xfce4 allerdings nicht. Der entscheidende Hinweise steht unter ''/usr/share/doc/gnupg-agent/README.Debian'' 
 +</WRAP> 
 + 
 +==== Vorgehen ==== 
 + 
 +**ssh-Support im gpg-agent konfigurieren**
  
 <code> <code>
Zeile 37: Zeile 49:
 aus. aus.
  
-==== Konflikt mit Gnome-Keyring Manager ====+**Konflikt mit Gnome-Keyring Manager lösen**
  
-In Gnome-Desktops (auch Mate, Cinnamon), gibt es einen Konflikt zwischen dem gpg-agent und dem gnome-keyring Manager, in dessen Folge der gpg-Agent nicht startet. +In manchen (älteren Umgebungen z.B. xfce4 bis Debian Jessie richt esfolgende Dateien umzubenennen
- +
-Um dem Gnome-Keyring-Manager abzugewöhnen, sich für ssh und gpg verantwortlich zu fühlenbenennen wir die Dateien:+
  
 <code> <code>
Zeile 61: Zeile 71:
  
 <code> <code>
-gconftool-2 --set -t bool /apps/gnome-keyring/daemon-component/ssh true+gconftool-2 --set -t bool /apps/gnome-keyring/daemon-component/ssh false
 </code> </code>
  
 wird in anderen Howtos genannt, scheint aber nicht in allen Umgebungen nötig zu sein. wird in anderen Howtos genannt, scheint aber nicht in allen Umgebungen nötig zu sein.
  
-=== Mate-Desktop ===+==== Einzelne Desktop-Umgebungen ====
  
-Dieses vorgehen scheint mit Mate-Desktop nicht zu funktionieren, weil der mate-session-manager standardmäßig den gnome-keyring-manager startet - unabhängig von den Einträgen in /etc/xdg/autostart.+=== XFCE-Desktop in Debian Stretch ===
  
-Abhilfe schafft auf User-Ebene:+Da xfce4 den gnome-keyring-Daemon nicht automatisch startet, gibt es hier keine Probleme. Lediglich der ssh-agent muss vom Starten abgehalten werden. 
 + 
 +Das lässt sich auf User-Ebene mit folgendem Kommando erreichen: 
 + 
 +  xfconf-query -c xfce4-session -p /startup/ssh-agent/enabled -n -t bool -s false 
 + 
 +Per Default ist diese Eigenschaft nicht gesetzt. 
 + 
 +Klappt alles nicht, kann ein 
 + 
 +<code> 
 +SSH_AUTH_SOCK=/run/user/$(id -u)/gnupg/S.gpg-agent.ssh 
 +</code> 
 + 
 +in die ~/.bashrc geschrieben werden. Damit wird die Umgebungsvariable gesetzt, mit dem ssh dann den gpg-agent findet, der für die Authentifizierung zuständig sein soll. 
 + 
 +=== Mate-Desktop in Debian Stretch=== 
 + 
 +Mate scheint den gnome-keyring-manager autonom zu starten - ohne Berücksichtigung der Startskripte unter /etc/xdg/autostart. 
 + 
 +Daher kann Abhilfe auf User-Ebene Abhilfe geschaffen werden:
  
 <code> <code>
Zeile 120: Zeile 150:
   * [[http://www.bootc.net/archives/2013/06/09/my-perfect-gnupg-ssh-agent-setup/|http://www.bootc.net/archives/2013/06/09/my-perfect-gnupg-ssh-agent-setup/]]   * [[http://www.bootc.net/archives/2013/06/09/my-perfect-gnupg-ssh-agent-setup/|http://www.bootc.net/archives/2013/06/09/my-perfect-gnupg-ssh-agent-setup/]]
  
-Aber mit debian-wheezy sollte das out of the box funktinieren. +Aber ab debian-wheezy sollte das out of the box funktionieren.
- +
-==== Konflikt mit Gnome-Keyring Manager ==== +
- +
-In Gnome-Desktops (auch Mate, Cinnamon), gibt es einen Konflikt zwischen dem gpg-agent und dem gnome-keyring Manager, in dessen Folge der gpg-Agent nicht startet. +
- +
-Um dem Gnome-Keyring-Manager abzugewöhnen, sich für ssh und gpg verantwortlich zu fühlen, benennen wir die Dateien: +
- +
-<code> +
-/etc/xdg/autostart/gnome-keyring-ssh.desktop +
-/etc/xdg/autostart/gnome-keyring-gpg.desktop +
-</code> +
- +
-jeweils um, in dem wir z.B. ein ''.disable''  anhängen. Wir könnten sie theoretisch auch löschen. +
- +
-In manchen [[http://www.bootc.net/archives/2013/06/09/my-perfect-gnupg-ssh-agent-setup/|Howtos]] wird empfohlen +
- +
-<code> +
-apt-get remove libpam-gnome-keyring +
-</code> +
- +
-zu deinstallieren. Das scheint nicht zwingend notwendig. +
- +
-Auch ein +
- +
-<code> +
-gconftool-2 --set -t bool /apps/gnome-keyring/daemon-component/ssh true +
-</code> +
- +
-wird in anderen Howtos genannt, scheint aber nicht in allen Umgebungen nötig zu sein.+
  
 ==== ssh über mehrere Server (ForwardAgent) ==== ==== ssh über mehrere Server (ForwardAgent) ====