Provided by: nitrocli_0.2.4-1build1_amd64 bug

NAME

       nitrocli - access Nitrokey devices

SYNOPSIS

       nitrocli [-m|--model pro|storage] [-v|--verbose] [-V|--version] command [arguments]

DESCRIPTION

       nitrocli provides access to Nitrokey devices.  It supports the Nitrokey Pro and the Nitrokey Storage.  It
       can be used to access the encrypted volume, the one-time password generator, and the password safe.

OPTIONS

       -m, --model pro|storage
              Restrict connections to the given device model.  If this option is not set, nitrocli will  connect
              to any connected Nitrokey Pro or Nitrokey Storage device.

       -v, --verbose
              Enable  additional  logging  and  control  its verbosity. Logging enabled through this option will
              appear on the standard error stream.  This  option  can  be  supplied  multiple  times.  A  single
              occurrence will show additional warnings.  Commands sent to the device will be shown when supplied
              three times and full device communication is  available  with  four  occurrences.  Supplying  this
              option five times enables the highest verbosity.

       -V, --version
              Print the nitrocli version and exit.

COMMANDS

   General
       nitrocli status
              Print the status of the connected Nitrokey device, including the stick serial number, the firmware
              version, and the PIN retry count.

       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
              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.

              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 storage 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 storage close
              Close the encrypted volume on the Nitrokey Storage.

       nitrocli storage status
              Print the status of the connected Nitrokey  Storage  device's  storage.  The  printed  information
              includes the SD card serial number, the encryption status, and the status of the volumes.

       nitrocli storage 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).

       nitrocli storage 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 storage hidden close
              Close a hidden volume.

   One-time passwords
       The Nitrokey Pro and the Nitrokey Storage 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.

              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 hex.

              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 numlock,  capslock  and  scrollock  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 configuration.

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

              With the --numlock, --capslock and --scrollock options, the respective bindings can be set.   slot
              is  the  number  of  the  HOTP  slot  to  bind  the  key  to.   If  --no-numlock, --no-capslock or
              --no-scrollock 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 and the Nitrokey Storage provide a password safe (PWS) with 20 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 set slot name login password
              Set the content of a PWS slot.  slot is the number  of  the  slot  to  write.   name,  login,  and
              password represent the data to write to the slot.

       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).

ENVIRONMENT

       The program honors a set of environment variables that can be used  to  suppress  interactive  PIN  entry
       through pinentry(1). The following variables are recognized:

       NITROCLI_ADMIN_PIN
              The admin PIN to use.

       NITROCLI_USER_PIN
              The user PIN to use.

       NITROCLI_NEW_ADMIN_PIN
              The new admin PIN to set. This variable is only used by the pin set command for the admin type.

       NITROCLI_NEW_USER_PIN
              The new user PIN to set. This variable is only used by the pin set command for the user type.

       NITROCLI_PASSWORD
              A password used by commands that require one (e.g., storage hidden open).

       NITROCLI_NO_CACHE
              If  this  variable  is  present  in  the  environment,  do  not  cache  any inquired secrets using
              gpg-agent(1) but ask for them each time they are needed.  Note that this variable does  not  cause
              any cached secrets to be cleared. If a secret is already in the cache it will be ignored, but left
              otherwise untouched.  Use the pin clear command to clear secrets from the cache.

EXAMPLES

   Storage
       Create a hidden volume in the first available slot, starting at half the size  of  the  encrypted  volume
       (i.e., 50%) and stretching all the way to its end (100%):
           $ nitrocli storage hidden create 0 50 100

   One-time passwords
       Configure a one-time password slot with a hexadecimal secret representation:
           $ nitrocli otp set 0 test-rfc4226 3132333435363738393031323334353637383930 --algorithm hotp
           $ nitrocli otp set 1 test-foobar 666F6F626172 --algorithm hotp
           $  nitrocli otp set 0 test-rfc6238 3132333435363738393031323334353637383930 --algorithm totp --digits
       8

       Configure a one-time password slot with an ASCII secret representation:
           $ nitrocli otp set 0 test-rfc4226 12345678901234567890 --format ascii --algorithm hotp
           $ nitrocli otp set 1 test-foobar foobar --format ascii --algorithm hotp
           $ nitrocli otp set 0 test-rfc6238 12345678901234567890 --format ascii --algorithm totp --digits 8

       Configure a one-time password slot with a base32 secret representation:
           $ nitrocli otp set 0 test-rfc4226 gezdgnbvgy3tqojqgezdgnbvgy3tqojq --format base32 --algorithm hotp
           $ nitrocli otp set 1 test-foobar mzxw6ytboi====== --format base32 --algorithm hotp
           $ nitrocli otp set 0 test-rfc6238 gezdgnbvgy3tqojqgezdgnbvgy3tqojq --format base32  --algorithm  totp
       --digits 8

       Generate a one-time password:
           $ nitrocli otp get 0 --algorithm hotp
           755224
           $ nitrocli otp get 0 --algorithm totp --time 1234567890
           89005924

       Clear a one-time password slot:
           $ nitrocli otp clear 0 --algorithm hotp

   Configuration
       Query the configuration:
           $ nitrocli config get
           Config:
             numlock binding:          not set
             capslock binding:         not set
             scrollock binding:        not set
             require user PIN for OTP: true

       Change the configuration:
           $ nitrocli config set --otp-pin

   Password safe
       Configure a PWS slot:
           $ nitrocli pws set 0 example.org john.doe passw0rd

       Get the data from a slot:
           $ nitrocli pws get 0
           name:     example.org
           login:    john.doe
           password: passw0rd

       Copy the password to the clipboard (requires xclip(1)).
           $ nitrocli pws get 0 --password --quiet | xclip -in

       Query the PWS slots:
           $  nitrocli pws status
           slot  name
           0     example.org

                                                   2019-05-26                                        NITROCLI(1)