SQ(1)
π
SQ(1) β the sq-key-subkey-add page, bestie edition β¨
okay so you're here for sq-key-subkey-add?? say less. it's a User Command in the SQ(1) manual, and it's literally all about giving your cert a brand-new subkey. let's get into it π«Ά
β¨ NAME β¨
sq-key-subkey-add β add a new subkey to a certificate π
πΈ SYNOPSIS πΈ
sq key subkey add [OPTIONS]
π DESCRIPTION π
Add a new subkey to a certificate. that's it, that's the whole vibe. but like, subkeys have β¨capabilitiesβ¨ so pay attention bestie.
A subkey has one or more capabilities:
--can-signsets the signing capability, meaning the key may be used for signing.--can-authenticatesets the authentication capability, meaning the key may be used for authentication (e.g., as an SSH key).--can-certifysets the certificate capability, meaning the key may be used to make third-party certifications.
and you can combine these capabilities, no cap π
Now for the encryption girlies:
--can-encrypt=storagesets the storage encryption capability, meaning the key may be used for storage encryption.--can-encrypt=transportsets the transport encryption capability, meaning the key may be used for transport encryption.--can-encrypt=universalsets both the storage and the transport encryption capability, meaning the key may be used for both storage and transport encryption.
π¨ okay important: the encryption capabilities must not be combined with the signing or authentication capability. that's the rule, periodt.
So normally, sq prompts the user for a password to use to encrypt the secret key material. lowkey iconic behavior. The password for the new subkey may be different from the other keys. When using --without-password, sq doesn't prompt for a password, and doesn't password-protect the subkey.
By default, a new subkey doesn't expire on its own. However, its validity period is limited by that of the certificate. Using the --expiration argument allows setting a different expiration time.
sq key subkey add respects the reference time set by the top-level --time argument. It sets the creation time of the subkey to the specified time. π°οΈ
β¨ OPTIONS β¨
π Subcommand options
--can-authenticateβ Add an authentication-capable subkey.--can-encrypt=PURPOSEβ Add an encryption-capable subkey [default:universal].
Encryption-capable subkeys can be marked as suitable for transport encryption, storage encryption, or both, i.e., universal.
[possible values: transport, storage, universal]
--can-signβ Add a signing-capable subkey.--cert=FINGERPRINT|KEYIDβ Add a subkey to the key with the specified fingerprint or key ID.--cert-email=EMAILβ Add a subkey to the key where a user ID includes the specified email address.--cert-file=PATHβ Add a subkey to the key read from PATH.--cert-userid=USERIDβ Add a subkey to the key with the specified user ID.--cipher-suite=CIPHER-SUITEβ Select the cryptographic algorithms for the subkey.
The default can be changed in the configuration file using the setting key.generate.cipher-suite.
[default: cv25519]
[possible values: rsa2k, rsa3k, rsa4k, cv25519, cv448, mldsa65-ed25519, mldsa87-ed448]
--expiration=EXPIRATIONβ Sets the expiration time.
EXPIRATION is either an ISO 8601 formatted date with an optional time or a custom duration. A duration takes the form N[ymwds], where the letters stand for years, months, weeks, days, and seconds, respectively. Alternatively, the keyword never does not set an expiration time.
[default: never]
--new-password-file=PASSWORD_FILEβ File containing password to encrypt the secret key material.
π note that the entire key file will be used as the password β including any surrounding whitespace like a trailing newline. she's thorough like that.
--output=FILEβ Write to the specified FILE.
If not specified, and the certificate was read from the certificate store, imports the modified certificate into the key store. If not specified, and the certificate was read from a file, writes the modified certificate to stdout.
--without-passwordβ Don't protect the subkey's secret key material with a password.
π Global options
See sq(1) for a description of the global options. (go read it bestie, it's giving essential β¨)
π EXAMPLES π
Add a new signing-capable subkey to Alice's key:
sq key subkey add --can-sign \
--cert=EB28F26E2739A4870ECC47726F0073F60FD0CBF0
slay. she's certified. π
π¦ SEE ALSO π¦
sq(1), sq-key(1), sq-key-subkey(1).
For the full documentation see <https://book.sequoia-pgp.org/>.
β VERSION β
1.5.0
okay that's the whole page!! π this was Sequoia PGP, version 1.5.0, and honestly? she ate. go add those subkeys bestie, and remember: encryption capabilities never mix with signing or auth. iykyk πβ¨π«Ά
π¦ where this page comes from
- fedora 43: sequoia-sq 1.5.0-1.fc43 Β· LGPL-2.0-or-later AND Apache-2.0 AND BSL-1.0 AND BSD-3-Clause AND MIT AND MPL-2.0 AND Unicode-3.0 AND Unicode-DFS-2016 AND Zlib AND bzip2-1.0.6 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (MIT OR Apache-2.0 OR Zlib) AND (Unlicense OR MIT)
- fedora 44: sequoia-sq 1.5.0-1.fc44 Β· LGPL-2.0-or-later AND Apache-2.0 AND BSL-1.0 AND BSD-3-Clause AND MIT AND MPL-2.0 AND Unicode-3.0 AND Unicode-DFS-2016 AND Zlib AND bzip2-1.0.6 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (MIT OR Apache-2.0 OR Zlib) AND (Unlicense OR MIT)
- nixpkgs unstable: sequoia-sq 1.5.0
- opensuse-leap 16.0: sequoia-sq 1.5.0-bp160.1.1 Β· LGPL-2.0-or-later
- opensuse-leap 16.0: sequoia-sq 1.5.0-bp160.1.1 Β· LGPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms