Путеводитель по Руководству Linux

  User  |  Syst  |  Libr  |  Device  |  Files  |  Other  |  Admin  |  Head  |



   nitrocli    ( 1 )

доступ к устройствам Nitrokey (access Nitrokey devices)

  Name  |  Synopsis  |  Description  |  Options  |    Commands    |  Config file  |  Environment  |  Extensions  |  Files  |  Examples  |

Команды (Commands)

General
       nitrocli list [-n|--no-connect]
              List all attached Nitrokey devices.  This command prints a
              list of the USB path, the model and the serial number of
              all attached Nitrokey devices.  To access the serial
              number of a Nitrokey Storage device, nitrocli has to
              connect to it.  To omit the serial number of Nitrokey
              Storage devices instead of connecting to them, set the
              --no-connect option.

nitrocli status Print the status of the connected Nitrokey device, including the stick serial number, the firmware version, and the PIN retry count. If the device is a Nitrokey Storage, also print storage related information including the SD card serial number, the SD card usage during this power cycle, the encryption status, and the status of the volumes.

nitrocli lock Lock the Nitrokey. This command locks the password safe (see the Password safe section). On the Nitrokey Storage, it will also close any active encrypted or hidden volumes (see the Storage section).

nitrocli reset [--only-aes-key] Perform a factory reset on the Nitrokey. This command performs a factory reset on the OpenPGP smart card, clears the flash storage and builds a new AES key. The user PIN is reset to 123456, the admin PIN to 12345678.

If the --only-aes-key option is set, the command does not perform a full factory reset but only creates a new AES key. The AES key is for example used to encrypt the password safe.

This command requires the admin PIN. To avoid accidental calls of this command, the user has to enter the PIN even if it has been cached.

Storage The Nitrokey Storage comes with a storage area. This area is comprised of an unencrypted region and an encrypted one of fixed sizes, each made available to the user in the form of block devices. The encrypted region can optionally further be overlayed with up to four hidden volumes. Because of this overlay (which is required to achieve plausible deniability of the existence of hidden volumes), the burden of ensuring that data on the encrypted volume does not overlap with data on one of the hidden volumes is on the user.

nitrocli unencrypted set mode Change the read-write mode of the volume. mode is the type of the mode to change to: read-write to make the volume readable and writable or read-only to make it only readable. This command requires the admin PIN.

Note that this command requires firmware version 0.51 or higher. Earlier versions are not supported.

nitrocli encrypted open Open the encrypted volume on the Nitrokey Storage. The user PIN that is required to open the volume is queried using pinentry(1) and cached by gpg-agent(1).

nitrocli encrypted close Close the encrypted volume on the Nitrokey Storage.

nitrocli hidden create slot start end Create a new hidden volume inside the encrypted volume. slot must indicate one of the four available slots. start and end represent, respectively, the start and end position of the hidden volume inside the encrypted volume, as a percentage of the encrypted volume's size. This command requires a password which is later used to look up the hidden volume to open. Unlike a PIN, this password is not cached by gpg-agent(1).

As a guide line for creating new hidden volumes, the status command provides a range of the SD card that has not been written to during this power cycle.

nitrocli hidden open Open a hidden volume. The volume to open is determined based on the password entered, which must have a minimum of six characters. Only one hidden volume can be active at any point in time and previously opened volumes will be automatically closed. Similarly, the encrypted volume will be closed if it was open.

nitrocli hidden close Close a hidden volume.

nitrocli fill [-a|--attach Fills the SD card with random data, overwriting all existing data. This operation takes about one hour to finish for a 16 GiB SD card. It cannot be canceled, even if the nitrocli process is terminated before it finishes.

This command requires the admin PIN. To avoid accidental calls of this command, the user has to enter the PIN even if it has been cached.

If the --attach option is set, this command will not start a new fill operation. Instead it checks whether a fill operation is currently running on the device and shows its progress.

One-time passwords The Nitrokey Pro, the Nitrokey Storage, and the Librem Key support the generation of one-time passwords using the HOTP algorithm according to RFC 4226 or the TOTP algorithm according to RFC 6238. The required data – a name and the secret – is stored in slots. Currently, the Nitrokey devices provide three HOTP slots and 15 TOTP slots. The slots are numbered per algorithm starting at zero.

The TOTP algorithm is a modified version of the HOTP algorithm that also uses the current time. Therefore, the Nitrokey clock must be synchronized with the clock of the application that requests the one-time password.

nitrocli otp get slot [-a|--algorithm algorithm] [-t|--time time] Generate a one-time password. slot is the number of the slot to generate the password from. algorithm is the OTP algorithm to use. Possible values are hotp for the HOTP algorithm according to RFC 4226 and totp for the TOTP algorithm according to RFC 6238 (default). Per default, this commands sets the Nitrokey's time to the system time if the TOTP algorithm is selected. If --time is set, it is set to time instead, which must be a Unix timestamp (i.e., the number of seconds since 1970-01-01 00:00:00 UTC). This command might require the user PIN (see the Configuration section).

nitrocli otp set slot name secret|- [-a|--algorithm algorithm] [-d|--digits digits] [-c|--counter counter] [-t|--time-window time-window] [-f|--format ascii|base32|hex] Configure a one-time password slot. slot is the number of the slot to configure. name is the name of the slot (may not be empty). secret is the secret value to store in that slot. If secret is set to -, the secret is read from the standard input.

The --format option specifies the format of the secret. If it is set to ascii, each character of the given secret is interpreted as the ASCII code of one byte. If it is set to base32, the secret is interpreted as a base32 string according to RFC 4648. If it is set to hex, every two characters are interpreted as the hexadecimal value of one byte. The default value is base32.

algorithm is the OTP algorithm to use. Possible values are hotp for the HOTP algorithm according to RFC 4226 and totp for the TOTP algorithm according to RFC 6238 (default). digits is the number of digits the one-time password should have. Allowed values are 6 and 8 (default: 6). counter is the initial counter if the HOTP algorithm is used (default: 0). time-window is the time window used with TOTP in seconds (default: 30).

nitrocli otp clear slot [-a|--algorithm algorithm] Delete the name and the secret stored in a one-time password slot. slot is the number of the slot to clear. algorithm is the OTP algorithm to use. Possible values are hotp for the HOTP algorithm according to RFC 4226 and totp for the TOTP algorithm according to RFC 6238 (default).

nitrocli otp status [-a|--all] List all OTP slots. If --all is not set, empty slots are ignored.

Configuration Nitrokey devices have four configuration settings: the Num Lock, Caps Lock and Scroll Lock keys can be mapped to an HOTP slot, and OTP generation can be set to require the user PIN.

nitrocli config get Print the current Nitrokey configuration.

nitrocli config set [[-n|--num-lock slot] | [-N|--no-num-lock]] [[-c|--caps-lock slot] | [-C|--no-caps-lock]] [[-s|--scroll-lock slot] | [-S|--no-scroll-lock]] [[-o|--otp-pin] | [-O|--no-otp-pin]] Update the Nitrokey configuration. This command requires the admin PIN.

With the --num-lock, --caps-lock and --scroll-lock options, the respective bindings can be set. slot is the number of the HOTP slot to bind the key to. If --no-num- lock, --no-caps-lock or --no-scroll-lock is set, the respective binding is disabled. The two corresponding options are mutually exclusive.

If --otp-pin is set, the user PIN will be required to generate one-time passwords using the otp get command. If --no-otp-pin is set, OTP generation can be performed without PIN. These two options are mutually exclusive.

Password safe The Nitrokey Pro, the Nitrokey Storage, and the Librem Key provide a password safe (PWS) with 16 slots. In each of these slots you can store a name, a login, and a password. The PWS is not encrypted, but it is protected with the user PIN by the firmware. Once the PWS is unlocked by one of the commands listed below, it can be accessed without authentication. You can use the lock command to lock the password safe.

nitrocli pws get slot [-n|--name] [-l|--login] [-p|--password] [-q|--quiet] Print the content of one PWS slot. slot is the number of the slot. Per default, this command prints the name, the login and the password (in that order). If one or more of the options --name, --login, and --password are set, only the selected fields are printed. The order of the fields never changes.

The fields are printed together with a label. Use the --quiet option to suppress the labels and to only output the values stored in the PWS slot.

nitrocli pws add [-s|--slot slot] name login password|- Add a new PWS slot. If the --slot option is set, this command writes the data to the given slot and fails if the slot is already programmed. If the --slot option is not set, this command locates the first free PWS slot and sets its content to the given values. It fails if all PWS slots are programmed.

If password is set to -, the password is read from the standard input.

nitrocli pws update slot [-n|--name name] [-l|--login login] [-p|--password password|-] Update the content of a programmed PWS slot. slot is the number of the slot to write. This command only sets the data given with the --name, --login, and --password options and does not overwrite the other fields of the slot.

If password is set to -, the password is read from the standard input.

nitrocli pws clear slot Delete the data stored in a PWS slot. slot is the number of the slot clear.

nitrocli pws status [-a|--all] List all PWS slots. If --all is not set, empty slots are ignored.

PINs Nitrokey devices have two PINs: the user PIN and the admin PIN. The user PIN must have at least six, the admin PIN at least eight characters. The user PIN is required for commands such as otp get (depending on the configuration) and for all pws commands. The admin PIN is usually required to change the device configuration.

Each PIN has a retry counter that is decreased with every wrong PIN entry and reset if the PIN was entered correctly. The initial retry counter is three. If the retry counter for the user PIN is zero, you can use the pin unblock command to unblock and reset the user PIN. If the retry counter for the admin PIN is zero, you have to perform a factory reset using the reset command or gpg(1). Use the status command to check the retry counters.

nitrocli pin clear Clear the PINs cached by the other commands. Note that cached PINs are associated with the device they belong to and the clear command will only clear the PIN for the currently used device, not all others.

nitrocli pin set type Change a PIN. type is the type of the PIN that will be changed: admin to change the admin PIN or user to change the user PIN. This command only works if the retry counter for the PIN type is at least one. (Use the status command to check the retry counters.)

nitrocli pin unblock Unblock and reset the user PIN. This command requires the admin PIN. The admin PIN cannot be unblocked. This operation is equivalent to the unblock PIN option provided by gpg(1) (using the --change-pin option).

Extensions In addition to the above built-in commands, nitrocli supports user-provided functionality in the form of extensions. An extension can be any executable file whose filename starts with "nitrocli-" and that is discoverable through lookup via the PATH environment variable. Those executables can be invoked as regular subcommands (without the need of the prefix; e.g., an extension with the name "nitrocli-otp-cache" could be invoked as "nitrocli otp-cache").

More information on how to write extensions can be found in the Extensions section below.