open-vault/website/content/docs/commands/operator/generate-root.mdx

95 lines
3.3 KiB
Plaintext
Raw Normal View History

---
layout: docs
page_title: operator generate-root - Command
description: |-
The "operator generate-root" command generates a new root token by combining a
quorum of share holders.
---
# operator generate-root
The `operator generate-root` command generates a new root token by combining a
quorum of share holders. With the `-dr-token` or `-recovery-token` options,
2019-10-29 20:42:47 +00:00
it can generate a DR operational token or a recovery token in the same way.
One of the following must be provided to start the root token generation:
- A base64-encoded one-time-password (OTP) provided via the `-otp` flag. Use the
`-generate-otp` flag to generate a usable value. The resulting token is XORed
with this value when it is returned. Use the `-decode` flag to output the
final value.
- A file containing a PGP key or a
[keybase](/docs/concepts/pgp-gpg-keybase) username in the `-pgp-key`
flag. The resulting token is encrypted with this public key.
An unseal key may be provided directly on the command line as an argument to the
command. If key is specified as "-", the command will read from stdin. If a TTY
is available, the command will prompt for text.
Please see the [generate root guide](/guides/operations/generate-root) for
step-by-step instructions.
## Examples
Generate an OTP code for the final token:
```shell-session
$ vault operator generate-root -generate-otp
```
Start a root token generation:
```shell-session
$ vault operator generate-root -init -otp="..."
```
Enter an unseal key to progress root token generation:
```shell-session
$ vault operator generate-root -otp="..."
```
## Usage
The following flags are available in addition to the [standard set of
flags](/docs/commands) included on all commands.
CLI Enhancements (#3897) * Use Colored UI if stdout is a tty * Add format options to operator unseal * Add format test on operator unseal * Add -no-color output flag, and use BasicUi if no-color flag is provided * Move seal status formatting logic to OutputSealStatus * Apply no-color to warnings from DeprecatedCommands as well * Add OutputWithFormat to support arbitrary data, add format option to auth list * Add ability to output arbitrary list data on TableFormatter * Clear up switch logic on format * Add format option for list-related commands * Add format option to rest of commands that returns a client API response * Remove initOutputYAML and initOutputJSON, and use OutputWithFormat instead * Remove outputAsYAML and outputAsJSON, and use OutputWithFormat instead * Remove -no-color flag, use env var exclusively to toggle colored output * Fix compile * Remove -no-color flag in main.go * Add missing FlagSetOutputFormat * Fix generate-root/decode test * Migrate init functions to main.go * Add no-color flag back as hidden * Handle non-supported data types for TableFormatter.OutputList * Pull formatting much further up to remove the need to use c.flagFormat (#3950) * Pull formatting much further up to remove the need to use c.flagFormat Also remove OutputWithFormat as the logic can cause issues. * Use const for env var * Minor updates * Remove unnecessary check * Fix SSH output and some tests * Fix tests * Make race detector not run on generate root since it kills Travis these days * Update docs * Update docs * Address review feedback * Handle --format as well as -format
2018-02-12 23:12:16 +00:00
### Output Options
- `-format` `(string: "table")` - Print the output in the given format. Valid
formats are "table", "json", or "yaml". This can also be specified via the
`VAULT_FORMAT` environment variable.
### Command Options
- `-cancel` `(bool: false)` - Reset the root token generation progress. This
will discard any submitted unseal keys or configuration.
- `-decode` `(string: "")` - Decode and output the generated root token. This
option requires the `-otp` flag be set to the OTP used during initialization.
If value is "-" then read the encoded token from stdin.
- `-generate-otp` `(bool: false)` - Generate and print a high-entropy
one-time-password (OTP) suitable for use with the "-init" flag.
- `-init` `(bool: false)` - Start a root token generation. This can only be done
if there is not currently one in progress.
- `-nonce` `(string; "")`- Nonce value provided at initialization. The same
nonce value must be provided with each unseal key.
- `-otp` `(string: "")` - OTP code to use with `-decode` or `-init`.
- `-pgp-key` `(keybase or pgp)`- Path to a file on disk containing a binary or
base64-encoded public PGP key. This can also be specified as a Keybase
2018-08-07 17:34:35 +00:00
username using the format `keybase:<username>`. When supplied, the generated
root token will be encrypted and base64-encoded with the given public key.
- `-status` `(bool: false)` - Print the status of the current attempt without
providing an unseal key. The default is false.
2019-10-29 20:42:47 +00:00
- `-dr-token` `(bool: false)` - Generate DR operational token
- `-recovery-token` `(bool: false)` - Generate recovery operational token