L'utilisation de gpg à partir d'un environnement basé sur une console, tel que des sessions ssh, échoue car la boîte de dialogue pinentry de GTK ne peut pas être affichée dans une session SSH.
J'ai essayé unset DISPLAY
mais ça n'a pas aidé. Les options de ligne de commande GPG n'incluent pas de commutateur permettant de forcer pinentry en mode console.
Les anciennes versions de GPG offraient une invite textuelle qui fonctionnait bien dans les sessions SSH, mais elle échouait après la mise à niveau.
Il y a le --textmode
commutateur de ligne de commande mais apparemment, il fait autre chose.
Quel serait le moyen propre et approprié d’obtenir une broche en texte brut pour les sessions à distance?
DISPLAY="" gpg2 ...
m'a aidé, j'ai également installé pinentry-curses + pinentry-tty au préalable, ne sachant pas si elles sont strictement nécessairesRéponses:
Pour changer le pinentry de façon permanente, ajoutez ce qui suit à votre
~/.gnupg/gpg-agent.conf
:(Dans les versions plus anciennes dépourvues de pinentry-tty, utilisez pinentry-curses pour une fenêtre de dialogue 'terminal complet'.)
Indiquez à l'agent GPG de recharger la configuration:
la source
gpg-agent
devrait lui-même détecter la présence ou l'absence de$DISPLAY
et choisir le pinentry approprié ...DISPLAY
définition ne signifie pas nécessairement que je peux ou veux l’utiliser, par exemple, lorsque je suis connecté via SSH.su
cela ne change pas la propriété de votre téléscripteur, vous devez donc le faire manuellementchown
. Voir cet article .ls /usr/bin | grep pinentry
. Je voispinentry
,pinentry-curses
,pinentry-emacs
,pinentry-gnome3
,pinentry-gtk2
,pinentry-qt
etpinentry-tty
. De cette façon, vous pouvez choisir celui qui vous convient le mieux, si vous n'avez pas le$DISPLAY
problème.Je viens d'avoir ce problème sur Ubuntu 16.04.3 lorsque j'essayais de générer / installer une clé privée à l'aide de gpg2 (2.1.11) sur un compte système sans mot de passe et sur un compte d'utilisateur via ssh. Rien n'a fonctionné donnant:
J'ai ensuite trouvé ce qui a fonctionné pour moi, donc en bref:
la source
Sur une boîte debian:
(et le régler sur pinentry-tty)
la source
Sur Ubuntu 18.04, avec l’installation par défaut de gpg 2.2.4, j’ai
J'ai été capable de faire ce qui suit pour avoir une entrée de code PIN basée sur du texte:
la source
Si vous ne l'avez pas, installez
pinentry-curses
avec yum ou apt-get.Ensuite, lancez:
sudo update-alternatives --config pinentry
Et sélectionnez pinentry-curses dans la liste.
la source
Je recopierai ma réponse par ici ...
En regardant
man pinentry-gnome3
, je vois ceci:Malheureusement, cette solution de secours en mode texte ne fonctionne pas pour moi. Il semble que d'autres ont le même problème . Cependant, ce commentaire a incité mon essayer un programme pin-entrée de GUI différente:
pinentry-gtk2
. Vous pouvez basculer comme ceci:Une fois que j'ai changé, cela a parfaitement fonctionné pour moi! Dans un terminal sur le bureau, il utilisera l'entrée de mot de passe de l'interface graphique, mais lorsque je ssh dans ma machine, il utilisera une entrée de mot de passe en mode texte.
la source
Pour empêcher le pop-up pinentry, vous pourriez
ssh localhost
. Forcer éventuellement X11 désactivé,-x Disables X11 forwarding.
voir l'exemple complet ci-dessous.la source
-x Disables X11 forwarding.
devrait éventuellement empêcher toute transmission X11. La réponse est mise à jour.J'ai trouvé le "exemple complet" dans la réponse de PvdL un peu déroutant, voici ce que je fais:
la source
Si vous le faites
export GPG_TTY=$(tty)
etunset DISPLAY
cela donnera une boîte de dialogue TLI demandant la phrase secrète. Taper le mot de passe correct le déchiffre.Si vous ne faites PAS l'exportation ci-dessus de GPG_TTY et que l'option DISPLAY n'est pas définie, il est prévu d'utiliser X Windows. Si vous avez lancé votre session (telle que PuTTY) à partir d'un système MS-Windows avec le transfert X11 activé, il souhaite envoyer la boîte de dialogue X-Window à votre système MS Windows. Vous pouvez utiliser un émulateur X tel que Exceed ou Cygwin / X sous Windows pour permettre à l'invite X-Window de la phrase secrète d'apparaître sur votre boîte de dialogue MS-Windows.
Cependant, vous pouvez éliminer le besoin de définir GPG_TTY et de désactiver DISPLAY et d'obtenir soit le TLI soit l'interface graphique en exécutant la ligne de commande avec
--batch
option et en insérant la phrase secrète avec l'--passphrase
option:Les 3 méthodes ont fonctionné pour moi aujourd'hui sur RHEL6 avec gnupg2.
la source
export GPG_TTY=$(tty)
suffit. Avez-vous essayé ça? Avez-vous une référence qui dit queunset DISPLAY
c'est également nécessaire? PS Les gens n'aiment pas mettre de phrase secrète sur la ligne de commande.