NVME-GEN-TLS-KEY(1)
π NVME-GEN-TLS-KEY β bestie, it's a whole manual page
okay so real talk: this is nvme-gen-tls-key from the NVMe Manual β part of the nvme command family. Yes she's deprecated. Yes we're still gonna learn her. Let's go π
β¨ NAME β¨
nvme-gen-tls-key β generate a NVMe TLS PSK. π¦
and yes, she's deprecated β noted, moving on, still iconic.
πΈ SYNOPSIS πΈ
nvme [<global-options>] gen-tls-key [--keyring=<name> | -k <name>]
[--keytype=<type> | -t <type>]
[--hostnqn=<nqn> | -n <nqn>]
[--subsysnqn=<nqn> | -c <nqn>]
[--hmac=<hmac-id> | -m <hmac-id>]
[--identity=<id-vers> | -I <id-vers>]
[--secret=<secret> | -s <secret>]
[--insert | -i]
[--compat | -C]
[--keyfile=<keyfile> | -f <keyfile>]
like look at her, all those flags, she's serving range π
π DESCRIPTION π
So this command is a deprecated alias for nvme-keys-gen-tls-psk(1). It's kept around for scripts that were written against nvme-cli versions older than 3.0 β legacy support era, we love a nostalgic queen π
But she's not a perfect copy of the old one. There are three differences from nvme-cli 2.x, and honestly? These matter. Pay attention bestie:
--insert/-inow reportsInserted TLS PSK <serial>, where 2.x used to sayInserted TLS key <serial>. So if your script matches the old wording, it needs updating. Periodt. No cap, that string match will break π₯- A
--secretwith an odd number of hexadecimal characters gets rejected. In 2.x it padded the trailing character with a zero and emitted a secret that was never actually given β the exact same behaviournvme-gen-dhchap-key(1)had. Not anymore. We're honest now β¨ - The diagnostics that validate
--secretgo to stdout, where 2.x put them on stderr. Wild, I know. Most of them accompany a non-zero exit, butSkipping excess secret bytesdoes not β an over-long--secretstill exits0, with the warning sitting on stdout ahead of the key. So a script reading the key off stdout gets the warning instead. ππ That's a trap, fr fr.
β οΈ New scripts should use nvme keys gen-tls-psk instead. This alias prints a deprecation warning on stderr and may be removed in a future release. Don't get attached, she's leaving.
See nvme-keys-gen-tls-psk(1) for the full option reference. That's where the real main character energy lives π
π GLOBAL OPTIONS π
These bad boys are defined at the top-level nvme command and are available to this subcommand. Group-chat-wide settings, iykyk:
--dry-runβ prints the command that would be executed, but doesn't actually execute it. Manifesting the command without running it, honestly iconic π§--no-ioctl-probingβ disables probing for 64-bit IOCTL support. Just... no probing. None. π«--no-retriesβ disables retry logic on transient errors. One shot, one opportunity, no second chances π-o <fmt>,--output-format=<fmt>β sets the reporting format tonormal,tabular,json, orbinary. Only one output format at a time, okay? Pick one. Choose your fighter β--output-format-version=<version>β selects the output format version. Version1uses the original field naming, while version2(the default) provides more consistent and script-friendly field names. Other versions get rejected. We don't do off-brand versions here π--quietβ suppresses informational messages. Errors are still reported, and--quietcancels any--verbosefor the library log level. She's quiet but she still will tell you when something's wrong π«Ά--set-options=<key=value>[,<key=value>...]β sets libnvme library options for this invocation. Supported keys areforce-4k,mi-probe-enabled,test-base-dirandtest-sysfs-dir. Customize away, bestie β¨--timeout=<ms>β sets the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff). Patience is a virtue, or just... forever π₯-v,--verboseβ increases the level of detail in the output. May be specified multiple times to further increase verbosity. Stack her up, she loves to talk π¬
These options can also be set as machine-wide defaults in nvme-cli.conf(5). And a command-line flag always overrides the file β CLI stays winning, as she should π
π EXAMPLES π
No Examples.
(yeah. that's it. that's the section. she gave us nothing but vibes π)
π¦ NVME π¦
Part of the nvme-user suite. Proud member, no cap πΈ
π SEE ALSO π
nvme-keys-gen-tls-psk(1)β the upgraded version, go read that one too bestie π
and that's the whole page!! ngl this one was a little cursed (deprecated AND tricky stdout behaviour, a combo π) but we got through it together π«Ά
π sign-off time: this beauty comes from NVMe, dated 10/30/2026, and lives under the identifier NVME-GEN-TLS-KEY(1). Take care of her, she's deprecated π
π¦ where this page comes from
- arch rolling: nvme-cli 3.2-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms