| Line 9: |
Line 9: |
| | ====Encrypt & Sign==== | | ====Encrypt & Sign==== |
| | gpg --encrypt --sign --recipient 'some user ID value' <file> | | gpg --encrypt --sign --recipient 'some user ID value' <file> |
| | + | |
| | + | ====Encrypt without prompt for key verification==== |
| | + | gpg --trust-model always --encrypt --recipient rafael@herrerosolis.com secret_file.txt |
| | | | |
| | ===Decryption=== | | ===Decryption=== |
| Line 17: |
Line 20: |
| | | | |
| | ==Asimetric Cipher== | | ==Asimetric Cipher== |
| − | ===Generate keys=== | + | |
| − | <source lang=text>-full-generate-key
| + | ===Private Key=== |
| | + | |
| | + | ====Generate keys==== |
| | + | <source lang="text">gpg --full-generate-key |
| | gpg --default-new-key-algo rsa4096 --gen-key | | gpg --default-new-key-algo rsa4096 --gen-key |
| | gpg --gen-key</source> | | gpg --gen-key</source> |
| | | | |
| − | ===List private keys=== | + | ====Import secret keys==== |
| | + | gpg --allow-secret-key-import --import tmp.asc |
| | + | |
| | + | ====List private keys==== |
| | gpg --list-secret-keys | | gpg --list-secret-keys |
| − | ===Export private key=== | + | ====Export private key==== |
| | gpg --export-secret-key -a "User Name" > private.key | | gpg --export-secret-key -a "User Name" > private.key |
| − | ===Export public key=== | + | |
| − | ====To file==== | + | ====Change private key passphrase==== |
| | + | <syntaxhighlight lang="text"> |
| | + | user@machine:~$ gpg --list-secret-keys |
| | + | gpg: checking the trustdb |
| | + | gpg: marginals needed: 3 completes needed: 1 trust model: pgp |
| | + | gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 2u |
| | + | /home/user/.gnupg/pubring.kbx |
| | + | ----------------------------- |
| | + | |
| | + | sec rsa1024 2019-11-19 [SC] |
| | + | 9D8D8CBC5B2A8A641C8CA0F58167B416B55E2859 |
| | + | uid [ultimate] RRA Example (No comments) <rra@rra.lan> |
| | + | ssb rsa1024 2019-11-19 [E] |
| | + | |
| | + | </syntaxhighlight><syntaxhighlight lang="text"> |
| | + | user@machine:~$ gpg --edit-key 9D8D8CBC5B2A8A641C8CA0F58167B416B55E2859 |
| | + | gpg (GnuPG) 2.2.17; Copyright (C) 2019 Free Software Foundation, Inc. |
| | + | This is free software: you are free to change and redistribute it. |
| | + | There is NO WARRANTY, to the extent permitted by law. |
| | + | |
| | + | Secret key is available. |
| | + | |
| | + | sec rsa1024/8167B416B55E2859 |
| | + | created: 2019-11-19 expires: never usage: SC |
| | + | trust: ultimate validity: ultimate |
| | + | ssb rsa1024/85BB533A53DAA163 |
| | + | created: 2019-11-19 expires: never usage: E |
| | + | [ultimate] (1). RRA Example (No comments) <rra@rra.lan> |
| | + | |
| | + | gpg> passwd |
| | + | |
| | + | </syntaxhighlight> |
| | + | |
| | + | ====Delete Private Key==== |
| | + | <syntaxhighlight lang="bash"> |
| | + | gpg --delete-secret-key 8167B416B55E2859 |
| | + | </syntaxhighlight> |
| | + | |
| | + | ===Public Keys=== |
| | + | |
| | + | ====Export public key==== |
| | + | =====To file===== |
| | gpg --output <destination_file.gpg> --export <public_key_ID> | | gpg --output <destination_file.gpg> --export <public_key_ID> |
| − | ====To server==== | + | |
| | + | =====Export all public keys===== |
| | + | <syntaxhighlight lang="bash"> |
| | + | gpg --list-keys | grep -v "pub\|sub\|uid\|--" | sed '/^$/d' | xargs -t -n 1 -I ARG gpg --export --armor ARG |
| | + | </syntaxhighlight> |
| | + | |
| | + | =====To server===== |
| | gpg --send-keys --keyserver pgp.mit.edu 18384645 | | gpg --send-keys --keyserver pgp.mit.edu 18384645 |
| − | ====To ascii file==== | + | =====To ascii file===== |
| | gpg --armor --export you@example.com > mykey.asc | | gpg --armor --export you@example.com > mykey.asc |
| | | | |
| − | ===Import secret keys=== | + | ====Import public keys==== |
| − | gpg --allow-secret-key-import --import tmp.asc
| + | =====From file===== |
| − | ===Import public keys=== | |
| − | ====From file==== | |
| | gpg --import <publickeyfile.gpg> | | gpg --import <publickeyfile.gpg> |
| − | ====From server==== | + | =====From server===== |
| | gpg --keyserver pgp.mit.edu --recv-keys 18384645 | | gpg --keyserver pgp.mit.edu --recv-keys 18384645 |
| | + | |
| | + | ====Delete Public Key==== |
| | + | <syntaxhighlight lang="bash"> |
| | + | gpg --delete-key 8167B416B55E2859 |
| | + | </syntaxhighlight> |
| | | | |
| | ===Encrypt with a public key=== | | ===Encrypt with a public key=== |
| Line 51: |
Line 110: |
| | ====Encrypt to multiple recipients==== | | ====Encrypt to multiple recipients==== |
| | <nowiki>gpg --recipient 42FF42FF \ | | <nowiki>gpg --recipient 42FF42FF \ |
| − | --recipient 12345678 \
| + | --recipient 12345678 \ |
| − | --recipient FEFEFEFE \
| + | --recipient FEFEFEFE \ |
| − | --encrypt-files backup.tar</nowiki>
| + | --encrypt-files backup.tar</nowiki> |
| | + | |
| | + | ====Encrypt without recipient key verification prompt==== |
| | + | <syntaxhighlight lang="bash"> |
| | + | gpg --trust-model always --encrypt --recipient rafael@herrerosolis.com secret_file.txt |
| | + | </syntaxhighlight> |
| | + | |
| | + | ====Encrypt without prompt for key verification==== |
| | + | gpg --trust-model always --encrypt --recipient rafael@herrerosolis.com secret_file.txt |
| | | | |
| | ===Decrypt with private key=== | | ===Decrypt with private key=== |
| | comando gpg -d <encrypted_file> | | comando gpg -d <encrypted_file> |
| | | | |
| | + | === List keys that can decrypt some file === |
| | + | <syntaxhighlight lang="bash"> |
| | + | gpg --list-only --no-default-keyring file.gpg |
| | + | </syntaxhighlight><br /> |
| | ===Signing Keys=== | | ===Signing Keys=== |
| | [https://www.phildev.net/pgp/gpgsigning.html Sign keys] | | [https://www.phildev.net/pgp/gpgsigning.html Sign keys] |