Solução
Tenho resolvido a situação usando o seguinte exemplo de trabalho :
gpg --local-user [fingerprint] --sign --armor --output somefile.tar.xz.asc --detach-sig somefile.tar.xz
Análise
-
gpg
: o programa fazendo a assinatura; no meu caso versão 2.2.4 -
--local-user
: aceita um ID como argumento ou impressão digital no meu caso. -
--sign
: ação paragpg
fazer. -
--armor
: gera caracteres legíveis em vez de binário. -
--output
: aceita um nome de arquivo inexistente como argumento, esse é o resultado do trabalho degpg
. Caso exista, ele perguntará se você deseja sobrescrever. -
--detach-sig
: instruigpg
a não assinar o arquivo diretamente e criar um arquivo de assinatura separado.
Exemplos não funcionais
-
Se você colocar o
--local-user
e seu argumento no final, em vez do começo, você receberá o erro como está na minha pergunta:gpg --sign --armor --output somefile.tar.xz.asc --detach-sig somefile.tar.xz --local-user [fingerprint]
Assim, o
--local-user
e seu argumento devem vir primeiro (se possível). -
Se você inverter o
--output
e o--detach-sig
, receberá um erro semelhante à minha pergunta:gpg --local-user [fingerprint] --sign --armor --detach-sig somefile.tar.xz --output somefile.tar.xz.asc
Conclusão
A ordem de determinados argumentos é importante. É por isso que falhou.