
Ich habe einen Yubikey4 mit meinem GPG-Schlüssel geladen, der als Smartcard fungiert. Ich kann das tun gpg2 card-status
und 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_SOCK
in 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 -vvv
Ich 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-support
der 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-agent
vom 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.options
wie 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 .sh
Erweiterung hat.