Você ao tentar criptografar alguns arquivos com GnuPG (GPG) recebeu esta mensagem de erro abaixo?
gpg: problem with the agent: Inappropriate ioctl for device gpg: error creating passphrase: Operation cancelled gpg: symmetric encryption of '[stdin]' failed: Operation cancelled
Se a resposta for sim, então este texto é pra você.
Há alguns dias eu precisei enviar alguns arquivos criptografados e dentre a inúmeras possibilidades para isso optei por usar criptografia simétrica do gnupg (gpg). Até ai nada demais já que sempre usei a ferramenta e nunca tive problemas.
Preparei uma pasta de testes em minha máquina, digitei a linha de comandos conforme eu precisava (abaixo) e…
tar --create --file=- --remove-files PASTASECRETA | gpg --symmetric --output PASTASECRETA.gpg
…como esperava deu tudo certo. Então preparei o teste inverso, ou seja, descriptografar a pasta quando ela chegasse no destino.
Digitei a nova linha comandos, conforme abaixo e…
gpg --decrypt PASTASECRETA.gpg | tar --extract --file=-
…também deu tudo certo!!
Era a hora de fazer então na pasta que deveria ser enviada e ao repetir a mesma receita o resultado foi a mensagem:
gpg: problema com o agente: ioctl inapropriado para dispositivo gpg: erro na criação da frase secreta: Operação cancelada gpg: symmetric encryption of '[stdin]' failed: Operação cancelada
Após algumas pesquisas eu descobri que o GPG se perde com relação ao terminal onde ele deve pedir a senha, quando estamos usando uma conexão remota (SSH).
Embora eu já use esta ferramenta há vários anos, foi a primeira vez que vi (ou talvez que tenha me afetado) e nas pesquisas que fiz vieram junto a solução:
export GPG_TTY=$(tty)
Digite esta linha, que exporta a variável GPG_TTY com o endereço do terminal atual, antes de usar o comando gpg para cifrar ou decifrar os seus arquivos e tudo funcionará como deve.
Mas simples que esta linha, só se isso fosse dispensável.
Dentre as inúmeras referências a que segue abaixo foi a primeira que li com a solução, então segue o link:
https://stackoverflow.com/questions/51504367/gpg-agent-forwarding-inappropriate-ioctl-for-device