Come utilizzare YubiKey tramite GnuPG sul server remoto?

3

Mi chiedo se sia possibile utilizzare un Yubikey per sbloccare ad esempio una chiave GnuPG su un server, quindi posso in qualche modo passare il token generato dallo YubiKey su SSH al server in modo semplice?

    
posta Ragadabing 28.07.2017 - 21:42
fonte

2 risposte

5

GnuPG non utilizza alcun token generato da Yubikey, ma lo stick implementa invece il protocollo smart card OpenPGP. Le chiavi sono memorizzate su YubiKey, che esegue tutte le operazioni crittografiche a chiave pubblica / privata. La protezione speciale si basa sul fatto che le chiavi non possono mai lasciare lo YubiKey, quindi un utente malintenzionato potrebbe utilizzare al massimo la chiave (temporaneamente, purché abbia accesso allo stick sbloccato), ma non riuscirà ad afferrarlo completamente .

GnuPG ha una funzione chiamata l'inoltro dell'agente . Si riduce principalmente a configurare gpg-agent per fornire uno speciale socket aggiuntivo utilizzato solo per operazioni specifiche:

extra-socket /home/<user>/.gnupg/S.gpg-agent.extra

Quindi configurare SSH per inoltrare tutte le comunicazioni sul socket al server remoto:

RemoteForward /home/<user>/.gnupg/S.gpg-agent /home/<user>/.gnupg/S.gpg-agent.extra

Altre spiegazioni che includono alcuni suggerimenti su nitpicks sono disponibili nella pagina wiki linkata sopra.

    
risposta data 28.07.2017 - 22:12
fonte
0

Nelle nuove versioni delle distribuzioni di GnuPG o Linux i percorsi dei socket possono cambiare. Questi possono essere trovati tramite

$ gpgconf --list-dirs agent-extra-socket

e

$ gpgconf --list-dirs agent-socket

Quindi aggiungi questi percorsi alla configurazione SSH:

Host remote
  RemoteForward <remote socket> <local socket>

Soluzione rapida per copiare le chiavi pubbliche:

scp .gnupg/pubring.kbx remote:~/.gnupg/

Sul dispositivo remoto, attiva l'agente GPG:

echo use-agent >> ~/.gnupg/gpg.conf

Sulla macchina remota, modifica anche la configurazione del server SSH e aggiungi questo parametro (/ etc / ssh / sshd_config):

StreamLocalBindUnlink yes

Riavvia il server SSH, riconnettiti al computer remoto, quindi dovrebbe funzionare.

    
risposta data 07.06.2018 - 09:42
fonte

Leggi altre domande sui tag