Jump to content

Nitrokey: Difference between revisions

From Official NixOS Wiki
Klinger (talk | contribs)
Tags: Mobile edit Mobile web edit
Lilly (talk | contribs)
add cli applications for nitrokey storage and nitrokey pro
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
This article describes how you can use your [https://www.nitrokey.com Nitrokey] [[Wikipedia:Nitrokey|Nitrokey]] with NixOS
<languages/>


<translate>
This article describes how you can use your [[Wikipedia:Nitrokey|Nitrokey]] with NixOS.
There are multiple variants of Nitrokeys, with the newest being the "Nitrokey 3". Different products support different security operations like FIDO2, One-Time-Passwords and S/MIME and OpenPGP key handling <ref>https://en.wikipedia.org/wiki/Nitrokey#Technical_features</ref>.
</translate>
<translate>
==Installation==
==Installation==
You also want to add the nitrokey udev rules and enable the gpg agent
 
While Nitrokey devices operate via USB (a standard port & protocol), to use it in a meaningful way, udev rules need to be added to the system to make the USB device available to regular users.
</translate>
 
<translate>
===Shell===
 
Depending on your Nitrokey device, there are different CLI applications to interact with it.
 
* {{nixos:package|nitrocli}} (CLI) and {{nixos:package|nitrokey-app}} (GUI) for ''Nitrokey Pro'' and ''Nitrokey Storage''
* {{nixos:package|pynitrokey}} (CLI) and {{nixos:package|nitrokey-app2}} (GUI) for ''Nitrokey 3''.
 
{{info|You will not be able to interact with Nitrokey devices unless you include appropriate udev rules on your system or have elevated privileges.}}
 
</translate>
 
<translate>
===System Setup===
 
To make Nitrokey devices usable by regular users, enable the appropriate hardware option.
This will set up correct udev rules.
</translate>
 
{{code|lang=nix|1=hardware.nitrokey.enable = true;}}
 
<translate>
== Tips and Tricks ==
 
=== GPG Support ===
 
{{expand|scope=Section|What exactly do these options do and which functionality does that enable for your nitrokey device?}}
 
<syntaxHighlight lang=nix>
<syntaxHighlight lang=nix>
services.udev.packages = [ pkgs.nitrokey-udev-rules ];
programs = {
programs = {
   ssh.startAgent = false;
   ssh.startAgent = false;
Line 13: Line 50:
};
};
</syntaxHighlight>
</syntaxHighlight>
</translate>
<translate>
=== KeePassXC ===
[https://keepassxc.org/ KeePassXC] supports securing a password database with Nitrokey hardware tokens. The [https://docs.nitrokey.com/software/nk-app2/keepassxc official Nitrokey documentation] has details on how a Nitrokey device must be set up to work with KeePassXC.
However, some NixOS Options should be set to make it work:
</translate>
{{code|lang=nix|1=
services.pcscd.enable = true;
environment.systemPackages = [ pkgs.nitrokey-app2 ];
}}
<translate>
==References==
<references/>
</translate>
<translate>
<!--T:4-->
[[Category:Hardware]]
[[Category:Hardware]]
</translate>

Latest revision as of 10:09, 28 March 2026

This article describes how you can use your Nitrokey with NixOS.

There are multiple variants of Nitrokeys, with the newest being the "Nitrokey 3". Different products support different security operations like FIDO2, One-Time-Passwords and S/MIME and OpenPGP key handling [1].

Installation

While Nitrokey devices operate via USB (a standard port & protocol), to use it in a meaningful way, udev rules need to be added to the system to make the USB device available to regular users.

Shell

Depending on your Nitrokey device, there are different CLI applications to interact with it.

ⓘ︎
Note: You will not be able to interact with Nitrokey devices unless you include appropriate udev rules on your system or have elevated privileges.


System Setup

To make Nitrokey devices usable by regular users, enable the appropriate hardware option. This will set up correct udev rules.

hardware.nitrokey.enable = true;

Tips and Tricks

GPG Support

☶︎
This Section needs to be expanded. Further information may be found in the related discussion page. Please consult the pedia article metapage for guidelines on contributing.
programs = {
  ssh.startAgent = false;
  gnupg.agent = {
    enable = true;
    enableSSHSupport = true;
  };
};

KeePassXC

KeePassXC supports securing a password database with Nitrokey hardware tokens. The official Nitrokey documentation has details on how a Nitrokey device must be set up to work with KeePassXC.

However, some NixOS Options should be set to make it work:

services.pcscd.enable = true;
environment.systemPackages = [ pkgs.nitrokey-app2 ];

References