ohmyzsh/plugins/otp/README.md
mattmc3 ea7797f929
feat(otp): XDG basedir support, or user value for OTP_HOME
otp plugin now uses the following logic for its home:
- If $OTP_HOME is set by the user, use that value
- If ~/.otp dir already exists, use that value
- If XDG_DATA_HOME is set, use $XDG_DATA_HOME/otp
- Else fallback to ~/.otp
2025-02-01 13:58:55 -05:00

24 lines
1.1 KiB
Markdown

# otp plugin
This plugin allows you to create one-time passwords using [`oathtool`](https://www.nongnu.org/oath-toolkit/man-oathtool.html),
able to replace MFA devices. The oathtool key is kept in a GPG-encrypted file so the codes
can only be generated by a user able to decrypt it.
To use it, add `otp` to the plugins array in your zshrc file:
```zsh
plugins=(... otp)
```
Provided aliases:
- `otp_add_device`: creates a new encrypted storage for an oathtool key and stores it
on the disk. For encrypting the key, it will ask for a GPG user ID (your GPG key's
email address). Then the OTP key needs to be pasted, followed by a CTRL+D character
inserted on an empty line.
- `ot`: generates a MFA code based on the given key and copies it to the clipboard
(on Linux it relies on xsel, on MacOS X it uses pbcopy instead).
The plugin stores its internal files in `$OTP_HOME`, which can be set in your zshrc.
If `$OTP_HOME` is not set it defaults to either `$HOME/.otp` or `$XDG_DATA_HOME/otp`,
depending on whether `~/.otp` already exists, or whether `$XDG_DATA_HOME` is set.