So starten Sie den GPG-Agent unter Ubuntu 16.04 ordnungsgemäß

So starten Sie den GPG-Agent unter Ubuntu 16.04 ordnungsgemäß

Ich habe einen Yubikey4 mit meinem GPG-Schlüssel geladen, der als Smartcard fungiert. Ich kann das tun gpg2 card-statusund bekomme das ganze Zeug angezeigt, alle meine Unterschlüssel werden angezeigt und alles ist in Ordnung.

Ich wollte dann gpg-agent verwenden, um mit meinem GPG-Schlüssel per SSH auf Remote-Hosts zuzugreifen. Ich habe Folgendes zu meinem hinzugefügt~/.gnupg/gpg-agent.conf

enable-ssh-support
pinentry-program /usr/bin/pinentry-curses
default-cache-ttl 60

Ich habe es SSH_AUTH_SOCKin meiner .bashrc auch wie folgt festgelegt:

export SSH_AUTH_SOCK=~/.gnupg/S.gpg-agent.ssh

Wenn ich dann meinen Rechner neu starte, wird der Schlüssel hinzugefügt und ist sichtbar mitssh-add -l

4096 SHA256....... cardno: ..... (RSA)

Aber alle Versuche, per SSH eine Verbindung zu einem Remote-Server herzustellen, bleiben einfach hängen. ssh -vvvIch bekomme die Meldung, dass die Maschine versucht, den Schlüssel zu signieren und zu senden, der Agent den Vorgang jedoch ablehnt.

Wenn ich dann ein von mir unter Verwendung verschiedener Quellen erstelltes Skript ausführe, funktioniert alles.

   killall gpg
   export SSH_AUTH_SOCK=~/.gnupg/S.gpg-agent.ssh; gpg-agent --daemon --keet-tty --use-standard-socket --pinentry-program=/usr/bin/pinentry-curses 

Ich habe versucht, dies mit bashrc zu implementieren und es mit meinem Desktop-Manager und einer systemd-Benutzeraufgabe auszuführen, aber ohne Erfolg.

Kann mir jemand helfen, herauszufinden, wie ich dies automatisch beim Anmelden starten kann, ohne „mein Skript“ ausführen zu müssen?

Antwort1

Kurze Antwort :

Als Root ausführen:

$ echo enable-ssh-support >> ~/.gnupg/gpg-agent.conf
# editor /etc/X11/Xsession.options
    ... comment out "use-ssh-agent" ...
# aptitude purge libpam-gnome-keyring

Melden Sie sich von Ihrer Desktop-Sitzung ab und melden Sie sich erneut an. Überprüfen Sie, ob $SSH_AUTH_SOCK auf Ihren GPG-Agenten verweist.

Erläuterung :

Standardmäßig aktiviert der GPG-Agent seinen SSH-Agenten nicht. Dies geschieht entweder durch Übergabe --enable-ssh-supportder Befehlszeile oder durch Hinzufügen einer Zeile zu einer Konfigurationsdatei wie oben.

Zweitens das Problem anderer SSH-Agenten. Der OpenSSH-Agent wird standardmäßig gestartet und /etc/X11/Xsession.d/90x11-common_ssh-agentvom x11-common-Paket eingerichtet. Wenn GNOME ausgeführt wird, wird auch der GNOME Keyring-Agent ausgeführt. Beide stören unseren GnuPG-Agenten.

Das Deaktivieren des OpenSSH-Agenten erfolgt durch Bearbeiten /etc/X11/Xsession.optionswie oben beschrieben.

Das Deaktivieren des GNOME Keyring-Agenten ist möglicherweise etwas komplizierter. Mit Xfce kann man das Paket libpam-gnome-keyring deinstallieren und sicherstellen, dass Xfce keine GNOME-Dienste startet (Einstellungen → Sitzung und Start → Erweitert → GNOME-Dienste beim Start starten– abwählen, falls angekreuzt).

Fehlerbehebung

Wenn SSH_AUTH_SOCK nach all dem immer noch nicht auf Ihren GPG-Agenten zeigt, kann es sein, dass ein anderer Agent Ihren GnuPG-Agenten noch stört. Die Variable SSH_AGENT_PID sollte die PID des Agentenprozesses enthalten, die dabei hilft, diesen Agenten zu lokalisieren.

Quelle : Mein perfektes GnuPG/SSH-Agent-Setup

Antwort2

Fügen Sie das Skript ein /etc/profile.d. Stellen Sie sicher, dass Sie das ausführbare Bit gesetzt haben ( chmod +x) und die Datei eine .shErweiterung hat.

verwandte Informationen