O Gentoo Linux GPG criptografa corretamente um arquivo passado pelo parâmetro, mas lança “ioctl inapropriado para o dispositivo” ao ler a entrada padrão

15

Estou executando o Gentoo Hardened com kernel 4.1.7-endurecido-r1 e estou tentando criptografar um arquivo usando GPG de uma sessão de shell aberta a partir de SSH e com a variável DISPLAY desativada para usar cursões de pinagem para prompt de senha. Usando gpg -o file.gpg --symmetric file , posso criptografar bem. Usando pv file | gpg -o file.gpg --symmetric , recebo a seguinte mensagem de erro:

gpg-agent[30745]: command get_passphrase failed: Inappropriate ioctl for device
    
por RAKK 22.01.2016 / 18:39

1 resposta

25

Você deve definir sua variável GPG_TTY para que ela funcione, como em este documento :

GPG_TTY=$(tty)
export GPG_TTY

Essas duas linhas devem estar no seu .bashrc (assumindo o bash), então elas são executadas toda vez que você abre uma nova sessão de terminal.

Existe outra solução: no bash você pode executar o seu pv e fingir que é um arquivo, usando a substituição do processo:

gpg -o file.gpg --symmetric <(pv file)

Como tal, pode não ser uma boa ideia canalizar coisas para programas que esperam entradas adicionais. Pode funcionar de forma diferente do esperado.

    
por 22.01.2016 / 18:57