53 votes

"gpg : la signature a échoué : Inappropriate ioctl for device" sur MacOS avec Maven

J'ai installé GPG via Homebrew avec brew install gpg . Il est installé dans la version 2.2.17 .

Dans mon POM Maven, j'ai ce snippet :

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-gpg-plugin</artifactId>
    <version>1.6</version>
    <executions>
        <execution>
            <id>sign-artifacts</id>
            <phase>verify</phase>
            <goals>
                <goal>sign</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Cependant, en exécutant mvn clean verify Je reçois cette erreur :

gpg: Beglaubigung fehlgeschlagen: Inappropriate ioctl for device
gpg: signing failed: Inappropriate ioctl for device

Comment puis-je corriger cette erreur ?

113voto

Harold L. Brown Points 1443

J'ai ajouté

GPG_TTY=$(tty)
export GPG_TTY

à mon ~/.bash_profile fichier. Maintenant ça marche.

Voir aussi https://github.com/Homebrew/homebrew-core/issues/14737#issuecomment-309848851

39voto

Dmitry Points 444

Sous macOS, vous pouvez utiliser pinentry-mac pour avoir une fenêtre GUI pour entrer le pin et optionnellement stocker le pin dans le trousseau.

Vous pouvez l'installer via Homebrew :

brew install pinentry-mac

Et activez-le avec la ligne suivante dans votre ~/.gnupg/gpg-agent.conf (créez-la si elle n'existe pas) :

pinentry-program /usr/local/bin/pinentry-mac

1voto

Yawar Points 886

Essayez ceci

gpg --use-agent --armor --detach-sign --output $(mktemp) pom.xml

0voto

Abdalla Arbab Points 547

Pour moi, cela s'est produit parce que la fenêtre du terminal n'était pas assez grande pour contenir l'interface utilisateur de la phrase de passe. Une fois que j'ai ouvert un onglet de terminal plus grand et que j'ai réexécuté la commande gpg, j'ai pu voir l'interface utilisateur de passphrase.

0voto

Si quelqu'un obtient ce message d'erreur en tapant gpg dans bash, essayez d'ajouter --no-tty . Cela a réglé le problème pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X