Skip to content

Instantly share code, notes, and snippets.

@TasyDevilsky
Last active December 3, 2021 09:37
Show Gist options
  • Save TasyDevilsky/dd423dcbde44aa11d519f9cda0cccb4f to your computer and use it in GitHub Desktop.
Save TasyDevilsky/dd423dcbde44aa11d519f9cda0cccb4f to your computer and use it in GitHub Desktop.
Manjaro a Yubikey připojení přes GPG modul

Návod pro Manjaro:

  • Prvně je potřeba mít veškeré balíčky pro správnou funkčnost.

sudo pacman -Syu gnupg pcsclite ccid hopenpgp-tools yubikey-personalization

  • dále je potřeba nastavit, popř. vytvořit konfigurák aby jako první linux četl právě pcscd karty, ten bude umístěn v ~/.gnupg/scdaemon.conf

scdaemon.conf

pcsc-driver /usr/lib/libpcsclite.so
card-timeout 5
disable-ccid
  • kontrola zda vůbec běží pcscd se provede pomocí "systemctl status pcscd"
  • pokud by byl problém, může být vypnutý , tak dáme "systemctl enable pcscd"

PROSTŘEDÍ GNOME: Nyní nástroj pcscd vidí náš yubikey, teď potřebujeme, aby se OpenSSH dotazoval na Yubikey, tedy aby si ssh-add -L nakešovalo klíč z GPG... To se provede takhle:

Vytvoříme soubor třeba

yubikey_runner.sh

#!/bin/sh
echo "Create required directories"
mkdir ~/.config/autostart
mkdir ~/.config/environment.d

echo "==> Disable Gnome-Keyring ssh component"
cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart
echo "Hidden=true" >> ~/.config/autostart/gnome-keyring-ssh.desktop

echo "==> Point ssh agent socket environment variable to GnuPG"
cat > ~/.config/environment.d/99-gpg-agent_ssh.conf <<'EOF'
SSH_AUTH_SOCK=${XDG_RUNTIME_DIR}/gnupg/S.gpg-agent.ssh
EOF

echo "==> Done"
echo
echo "Logout and after login GnuPG will be your ssh-agent"
echo
  • Provedeme restart a je hotovo, nyní by se mělo zobrazit okno pro zadání PIN při přihlášení přes SSH, za předpokladu, že veřejný klíč již máme na serveru v .ssh/authorized_keys a hlavně !! Ve správném formátu !!

Funguje i na manjaro KDE

KDE prostředí

Řešení problému

sign_and_send_pubkey: signing failed: agent refused operation

  • měl by pomoct příkaz níže pokud odinstalujeme "KGPG" a stále se nám zobrazuje hláška "sign_and_send_pubkey" failed atd ... gpg-connect-agent updatestartuptty /bye
  • pokud nám to problém vyřeší ale po restartu se objeví znova, je možné, že gnupg načítá špatný pinentry modul (dialogové okno ať už v CLI nebo GUI) a tím dochází k chybě... proto je potřeba vytvořit konfigurák, který si načte... pokud jej tedy už nemáme...

~/.gnupg/gpg-agent.conf

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

zjistit co za pinentry možnosti máme ... já mám KDE tak používám pinentry-program /usr/bin/pinentry-qt

  • Jinak ještě doporučuji zkontrolovat ostatní složky, které jsme vytvořily, pokud by něco nefungovalo. Ale na čerstvém Manjaro GNOME/KDE funguje, XFCE jsem netestoval...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment