gpg2 no Mac: Como inserir a frase secreta no terminal em vez de obter uma solicitação da GUI?

4

Estou usando o Mountain Lion e, quando criptografo um arquivo usando o gpg, uma GUI irritante solicita que eu insira a frase secreta. Eu gostaria de ser solicitado para a frase secreta no terminal, não em uma interface gráfica externa. Eu posso estar fazendo isso remotamente, por exemplo.

Existe uma maneira de fazer o gpg para mac pedir a frase secreta no terminal e não em um prompt da GUI?

UPDATE: Isso parece muito difícil com o gpg2, então fiz o downgrade para gpg1. Tentei tudo com gpg2 (MacGPG2) e nada funcionou. É uma merda! Com gpg1 funciona bem!

    
por chrisapotek 08.11.2012 / 04:27

4 respostas

3

O seguinte assume que você está usando o gnupg2 com macports, e não o MacGPG2, mas a correção provavelmente se aplicará ao seu caso de uso.

Instale o pacote 'pinentry' da macports:

port -v install pinentry

Edite seu ~ / .gnupg / gpg-agent.conf para se adequar:

pinentry-program /opt/local/bin/pinentry-curses

Remova ou comente a entrada "pinentry-program" existente. Recarregue seu terminal ou use isto:

echo RELOADAGENT | gpg-connect-agent

Concluído. Agora você deve ter pin-in / passphrase no terminal (caixa de diálogo curses). Se você deseja ter o antigo comportamento de gpg v1.x da pinagem inline-ttl, você pode usar um comando './configure' personalizado com o pacote pinentry da macports.

Se você já instalou as ferramentas MacGPG2 / GPG para Mac, pode ser necessário eliminar o processo 'shutdown-gpg-agent' antes que a caixa de diálogo de pinagem funcione (ou simplesmente reinicialize).

user$ ps ax |grep shutdown-gpg-agent
 1854   ??  S      0:00.01 /bin/bash /usr/local/MacGPG2/libexec/shutdown-gpg-agent

user$ kill -KILL 1854
    
por 21.01.2015 / 14:34
0

Três palavras: compile você mesmo. Sim, você pode fazer isso! Certifique-se de se livrar do arquivo gpg-agent.conf primeiro!

    
por 29.10.2013 / 19:35
0

Você pode verificar se está obtendo uma conexão ssh verificando a variável de ambiente SSH_CONNECTION .

export GPG_TTY=$(tty)
if [[ -n "$SSH_CONNECTION" ]] ;then
    export PINENTRY_USER_DATA="USE_CURSES=1"
fi

Eu uso cheques para ver se estou passando de ssh ou acima de tmux usando a seguinte verificação:

export GPG_TTY=$(tty)
if [[ -n "$SSH_CONNECTION" || -n "$TMUX" ]] ;then
    export PINENTRY_USER_DATA="USE_CURSES=1"
fi

Fonte

    
por 15.12.2017 / 12:04
0

Acabei de compilar o GnuPG (versão 2.2.9) e todas as suas dependências para um Mac OS High Sierra. Foi bem interessante. Depois de resolver um pequeno problema com os testes do libgcrypt (com uma pequena ajuda da respectiva receita do Homebrew), tudo funcionou basicamente fora da caixa.

Ao tentar importar minha chave privada, não consegui, porque faltava um programa de pinagem para o sistema. Uma busca rápida me fez pousar nesta página, mas não foi muito útil, então eu simplesmente decidi compilar o pinentry eu mesmo.

Eu já sabia, da minha experiência usando o GnuPG em máquinas Linux, que eu gostaria de digitar minha senha em um prompt normal na linha de comando, sem aquelas caixas de diálogo irritantes e perturbadoras. E é por isso que estou compartilhando o processo aqui. É simples, mas pode ajudar alguém com um problema semelhante.

Comece obtendo o código fonte do pinentry do GnuPG. Verifique o site . No momento desta publicação, o link para fazer o download da fonte era link . Baixe também a assinatura e verifique a autenticidade usando o próprio gpg.

NÃO PASSE A VERIFICAÇÃO , isto é importante ! Este programa terá acesso a todas as suas senhas gpg e chaves privadas. É melhor você se certificar de que é o que diz ser! Se você tiver problemas, certifique-se de ter importado as chaves dos mantenedores do GnuPG (veja aqui ):

$ gpg --verify pinentry-1.1.0.tar.bz2.sig pinentry-1.1.0.tar.bz2

Agora que você tem certeza de que está trabalhando com arquivos de origem autênticos, extraia o código-fonte e cd nesse diretório:

$ tar xvf pinentry-1.1.0.tar.bz2
$ cd pinentry-1.1.0

A compilação é muito direta:

$ ./configure --enable-pinentry-tty
$ make
$ sudo make install

Pode ser que configure reclame de alguma dependência ausente. Nesse caso, basta ler o erro e baixar a dependência da página do GnuPG (sempre verificando a integridade do download!).

O bit importante dos comandos acima é o sinalizador --enable-pinentry-tty . Pinentry TTY é a maneira mais simples de digitar sua senha em um prompt muito normal e chato na linha de comando. Exatamente o que eu queria! Se não me engano, a versão curses será criada de qualquer maneira. Embora seja uma opção do CLI, acho que é tão perturbador quanto todos os outros.

Assim que estiver instalado, você verá alguns novos binários em /usr/local/bin . Certifique-se de ter um chamado pinentry-tty (se não tiver, algo deu errado ...).

Para tornar esse novo binário sua maneira padrão de digitar a senha gpg, inclua a seguinte linha em ~/.gnupg/gpg-agent.conf (crie o arquivo e o diretório, se ainda não existirem):

pinentry-program /usr/local/bin/pinentry-tty

Provavelmente não funcionará se você tentar imediatamente, porque provavelmente você ainda tem um agente gpg em execução com a configuração antiga. Vá em frente e mate todos os agentes-gpg e crie um novo:

$ sudo killall gpg-agent
$ gpg-agent --daemon

É isso! Aprecie a sua antiga pinagem TTY:)

    
por 30.07.2018 / 11:23