4 votes

gpg-agent et SSH : Pas de clés

J'essaie d'activer l'authentification SSH par le biais de ma sous-clé GPG, en utilisant ce tutoriel . Cependant, j'ai emprunté et utilisé le .init script de ce blog (au lieu d'éditer mon Xprofile).

Cependant, j'obtiens un message d'erreur très particulier :

[12:53:49][user@pc]
> ~ $ ssh-add -l
gpg-agent[7659]: ssh handler 0xABCD1234 for fd 5 started
gpg-agent[7659]: ssh request 1 is not supported
gpg-agent[7659]: ssh request handler for request_identities (11) started
gpg-agent[7659]: no running SCdaemon - starting it
gpg-agent[7659]: DBG: first connection to SCdaemon established
gpg-agent[7659]: no authentication key for ssh on card: Card error
gpg-agent[7659]: /home/user/.gnupg/sshcontrol:4: key '[keygrip from auth key]' skipped: No such file or directory
gpg-agent[7659]: ssh request handler for request_identities (11) ready
The agent has no identities.
gpg-agent[7659]: ssh handler 0xABCD1234 for fd 5 terminated

Cela n'a évidemment aucun sens, car je n'ai jamais utilisé de carte à puce et je ne pense pas avoir installé de pilotes de carte à puce.

En outre, ces clés GPG sont valides et importées. La clé mentionnée ci-dessus possède également une sous-clé d'authentification.

J'utilise la version 2.1.1 de GnuPG.

Existe-t-il un moyen de résoudre ce problème et (en prime) de faire fonctionner mes clés SSH via GPG ?


Contenu de ~/.gnupg/sshcontrol :

# List of allowed ssh keys.  Only keys present in this file are used
# in the SSH protocol.  The ssh-add tool may add new entries to this

<keygrip from my auth key>

Edita: Après avoir fait set | grep SSH_AUTH_SOCK j'obtiens :

SSH_AUTH_SOCK=/run/user/1000/keyring-PLDuNs/ssh

Cependant, en essayant de cat ce fichier, j'obtiens un No such device or address erreur. Cependant, je ne suis pas sûr que cela soit pertinent ou qu'il s'agisse simplement d'une erreur de l'utilisateur qui s'attend à un retour.

6voto

Ryan Lue Points 241

Je vois deux problèmes dans votre configuration :

  1. Cependant, j'ai emprunté et utilisé le .init script de ce blog (au lieu de modifier mon Xprofile).

    L'init script de cet article de blog est obsolète ( c'est-à-dire, pour les versions de GnuPG antérieures à la 2.1). Ne l'utilisez pas.

  2. Edita: Après avoir fait set | grep SSH_AUTH_SOCK j'obtiens :

    SSH_AUTH_SOCK=/run/user/1000/keyring-PLDuNs/ssh

    Cependant, lorsque j'essaie d'envoyer ce fichier, j'obtiens un message d'erreur "No such device or address error" (pas de périphérique ou d'adresse de ce type). Cependant, je ne sais pas si c'est pertinent ou si c'est juste une erreur de l'utilisateur qui s'attend à un retour.

    Vous utilisez le mauvais socket d'authentification SSH.

Pour une source sur ces affirmations, consulter la documentation officielle . Pour une fixation directe, voir Description du processus par Jens Erat sur Unix StackExchange. Copié ici pour plus de commodité :

  1. activer le ssh-agent en ajoutant enable-ssh-support à ~/.gnupg/gpg-agent.conf

  2. export SSH_AUTH_SOCK=$HOME/.gnupg/S.gpg-agent.ssh ; vous pourriez vouloir le faire dans votre ~/.profile

  3. tuer ssh-agent si elle a été lancée et rechargée gpg-agent ( gpg-connect-agent reloadagent /bye )

  4. exporter et ajouter votre clé publique aux serveurs cibles ( ssh-add -L devrait maintenant contenir la ligne familière de la clé publique SSH pour votre clé OpenPGP)

    Note de la rédaction : Cette étape peut être simplifiée en ajouter la valeur "keygrip" de la clé à ~/.gnupg/sshcontrol puis l'autoriser sur le serveur distant avec ssh-copy-id .

  5. ssh au serveur cible comme avec une clé SSH normale

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X