NVME-KEYS-REVOKE(1)
π NVME-KEYS-REVOKE(1) β the NVMe Manual, but make it make sense
okay so bestie, welcome to nvme-keys-revoke from the NVMe Manual β¨ this is the little command that β¨ revokes β¨ a key, and yes we're gonna walk through it together, no cap.
πΈ NAME πΈ
nvme-keys-revoke β revoke a NVMe TLS PSK from a keyring π
like, the key is gone gone. it's giving "you're uninvited to the group chat" energy.
π¦ SYNOPSIS π¦
nvme [<global-options>] keys revoke [--keyring=<name> | -k <name>]
[--keytype=<type> | -t <type>]
--identity=<description> | -i <description>
read it slowly, it's literally just nvme β keys β revoke with some flags stacked on top π and notice that --identity / -i is required, okay? not optional, not vibes-based.
π DESCRIPTION π
revoke an NVMe TLS pre-shared key (PSK) from the system keyring.
that's it, that's the whole thing π«Ά it's a PSK, it's pre-shared, it's TLS, and it's about to be evicted from the system keyring. main character exit. π
β¨ OPTIONS β¨
-k <name>,--keyring=<name>β the name of the keyring you're revoking the key from. default is.nvmeβ yes with the lil dot in front, don't @ me π-t <type>,--keytype=<type>β the type of the key you're revoking. default ispskπ¦-i <description>,--identity=<description>β the identity (description) of the key to revoke. this one's the whole point, don't skip it π
π GLOBAL OPTIONS π
these bad boys live at the top-level nvme command, and they're available to this subcommand too. so you can absolutely sprinkle them on top of your keys revoke π§
--dry-runβ print the command that would be executed, but don't actually execute it. it's giving dress rehearsal π--no-ioctl-probingβ disable probing for 64-bit IOCTL support.--no-retriesβ disable retry logic on transient errors. one shot, one opportunity π€-o <fmt>,--output-format=<fmt>β set the reporting format tonormal,tabular,json, orbinary. only one output format may be used at a time, so pick your fave and commit π--output-format-version=<version>β select the output format version. version1uses the original field naming, while version2(the default) provides more consistent and script-friendly field names. other versions are rejected, periodt π«--quietβ suppress informational messages. errors are still reported, and--quietcancels any--verbosefor the library log level. so like, it wins the argument π«Ά--set-options=<key=value>[,<key=value>...]β set libnvme library options for this invocation. supported keys areforce-4k,mi-probe-enabled,test-base-dirandtest-sysfs-dirβ--timeout=<ms>β set the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff). the way that timeout just never ends π-v,--verboseβ increase the level of detail in the output. may be specified multiple times to further increase verbosity. stack it, you know you want to π₯
these options can also be set as machine-wide defaults in nvme-cli.conf(5). and a command-line flag always overrides the file β the CLI is the main character here, the config file is just the supporting cast π
π EXAMPLES π
- revoke a key using its description and verify with
keyctl:
# nvme keys revoke --identity="NVMe0R01 hostnqn0 subsys0"
# keyctl show
Session Keyring
573249525 --alswrv 0 0 keyring: _ses
353599402 --alswrv 0 65534 \_ keyring: _uid.0
475911922 ---lswrv 0 0 \_ keyring: .nvme
649274894: key inaccessible (Key has been revoked)
look at that last line π the key is inaccessible because it's been revoked β that's the proof, bestie. iykyk π
π₯ NVME π₯
part of the nvme-user suite π¦
okay that's the whole page, go revoke some keys, drink water, and remember: --identity is not optional πβ¨
nvme-user suite Β· dated 10/30/2026 Β· bye bestie, ily π«Άπ
π¦ 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