web-dev-qa-db-ja.com

特定の秘密鍵を使用してファイルをデタッチ署名する方法は? ||なぜこれが失敗するのですか?

私は.tar.xzデタッチしたいファイル-gpg秘密鍵を使用して署名します。

問題は、キーリングに複数の秘密鍵がインポートされており、どれを使用するかを選択する必要があることです。


進捗

これを実行しようとしています:

gpg --output somefile.tar.xz.sig --detach-sig somefile.tar.xz --local-user [fingerprint]

しかし、エラーが発生します:

gpg: Note: '--local-user' is not considered an option
gpg: can't open '--local-user': No such file or directory
gpg: signing failed: No such file or directory

ここで何が間違っているので、どうすれば修正できますか?

1

解決

私は以下を使用して状況を改善してきました実例

gpg --local-user [fingerprint] --sign --armor --output somefile.tar.xz.asc --detach-sig somefile.tar.xz

構文解析

  • gpg:署名を行うプログラム。私の場合、バージョン2.2.4

  • --local-user:私の場合は引数またはフィンガープリントとしてIDを取ります。

  • --signgpgが実行するアクション。

  • --armor:バイナリの代わりに人間が読める文字を出力します。

  • --output:存在しないファイル名を引数として取ります。これは、gpgの作業の結果です。存在する場合は、上書きするかどうかを尋ねられます。

  • --detach-sig:ファイルに直接署名せずに別の署名ファイルを作成するようにgpgに指示します。


動作しない例

  1. --local-userとその引数を最初ではなく最後に置くと、私の質問のようにエラーが発生します。

    gpg --sign --armor --output somefile.tar.xz.asc --detach-sig somefile.tar.xz --local-user [fingerprint]
    

    したがって、--local-userとその引数が最初に来るものとします(可能な場合)。

  2. --output--detach-sigを逆にすると、私の質問と同様のエラーが発生します。

    gpg --local-user [fingerprint] --sign --armor --detach-sig somefile.tar.xz --output somefile.tar.xz.asc
    

結論

与えられた引数の順序が重要です。それが失敗した理由です。

1