NVME-CHECK-TLS-KE(1)

πŸ“¦ version 3.2, in arch rolling

πŸ’… NAME πŸ’…

nvme-check-tls-key β€” bestie, this one checks a NVMe TLS PSK, but like… it's deprecated πŸ™ˆ

(this lives in the NVMe Manual, section 1, and yeah we're gonna get into all of it)


✨ SYNOPSIS ✨

nvme [<global-options>] check-tls-key [--keyring=<name> | -k <name>]
                        [--keytype=<type> | -t <type>]
                        [--hostnqn=<nqn> | -n <nqn>]
                        [--subsysnqn=<nqn> | -c <nqn>]
                        [--keydata=<key> | -d <key>]
                        [--identity=<id-vers> | -I <id-vers>]
                        [--compat | -C]

πŸŽ€ DESCRIPTION πŸŽ€

Okay so nvme-check-tls-key is a deprecated alias for nvme-keys-check-tls-psk(1) β€” it's still here for the scripts that were written against nvme-cli versions older than 3.0 🫢. But it is not a carbon copy of 2.x, there are two whole differences:

  • --insert/-i and --keyfile/-f are gone, periodt. Back in 2.x those were the ones that derived a TLS PSK and stored it in the keyring; the new check-tls-psk never modifies the keyring β€” that whole job moved over to nvme-keys-insert-tls-psk(1) πŸ¦‹.
  • The identity is no longer the first line of stdout. 2.x printed it all alone and it was cute and simple 😭; the alias prints Configured PSK is valid (HMAC <id>, length <len>) first and reports the keyring state after it β€” so a script that grabs the identity with head -1 is literally reading the wrong line πŸ’€. And searching the keyring is itself new, plus a keyring that does not exist gets reported as a failure: the command exits 1 where 2.x exited 0. yeah. that's a whole thing.
New scripts should use nvme keys check-tls-psk instead, bestie. This alias prints a deprecation warning on stderr and may be removed in a future release, so don't get attached πŸ’”.

For the full option reference, go see nvme-keys-check-tls-psk(1) β€” she has the whole menu πŸ‘‘


🌈 GLOBAL OPTIONS 🌈

These ones are defined up at the top-level nvme command and they're available to this subcommand too:

  • --dry-run β€” prints the command that would be executed, but does not actually execute it. all vibes, no action ✨
  • --no-ioctl-probing β€” disables probing for 64-bit IOCTL support.
  • --no-retries β€” disables retry logic on transient errors. no second chances, we move πŸ’…
  • -o <fmt>, --output-format=<fmt> β€” sets the reporting format to normal, tabular, 'json, or binary. Only one output format may be used at a time, so pick your fave and commit πŸŽ€
  • --output-format-version=<version> β€” selects the output format version. Version 1 uses the original field naming, while version 2 (the default) gives you more consistent and script-friendly field names. Other versions are rejected β€” no cap 🚫
  • --quiet β€” suppresses informational messages. Errors are still reported, and --quiet cancels any --verbose for the library log level. shhhh 🀫
  • --set-options=<key=value>[,<key=value>...] β€” sets libnvme library options for this invocation. The supported keys are force-4k, mi-probe-enabled, test-base-dir and test-sysfs-dir πŸ”₯
  • --timeout=<ms> β€” sets the timeout for the command in milliseconds. infinite or -1 waits without a time limit (0xffffffff) ⏳
  • -v, --verbose β€” increases the level of detail in the output. May be specified multiple times to further increase verbosity. she's chatty and we love her πŸ—£οΈ
These options can also be set as machine-wide defaults in nvme-cli.conf(5). A command-line flag always overrides the file β€” CLI stays the main character πŸ‘‘

πŸ“ EXAMPLES πŸ“

No Examples

like… none. zero. not a single one 😭 iconic behaviour honestly


🧚 NVME 🧚

Part of the nvme-user suite 🫢


πŸ’œ SEE ALSO πŸ’œ

nvme-keys-check-tls-psk(1), nvme-keys-insert-tls-psk(1)


✨ okay that's the whole page bestie, mwah πŸ’– ✨

signing off from the NVMe manual, dated 10/30/2026 β€” go use the non-deprecated one, ily πŸŽ€πŸ¦‹πŸ’…

πŸ“¦ where this page comes from