You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* ...any other smart card or PIV applet supported the `Microsoft Smart Card Key Storage Provider`
21
+
* ...any other smart card or PIV applet supported by the `Microsoft Smart Card Key Storage Provider`
22
22
* A nice-ish GUI for managing your hardware-backed keys
23
23
* Supports multiple SSH Agent listeners:
24
24
* OpenSSH for Windows
@@ -34,20 +34,20 @@ Use your WebAuthN authenticator as your SSH key with `sk-ssh-ed25519@openssh.com
34
34
35
35
* Download and launch the latest release
36
36
* Click **Create Key** and enter a key name and container name.
37
-
* Key name is a friendly descriptive name for the SSH Key
38
-
* Container name is the nCrypt key container identifier which will be used - it will be shown in the password prompt when signing is requested.
39
-
* Select your Key Algorithm
40
-
* Enter a password or PIN
37
+
***Key Name** is a friendly descriptive name for the SSH Key
38
+
***Container Name** is the nCrypt key container identifier which will be used - it will be shown in the password prompt when signing is requested.
39
+
* Select your **Key Algorithm**
40
+
* Enter a **Password or PIN**
41
41
* This can be empty if you wish to be a bit less secure
42
-
* Click save
42
+
* Click **Save**
43
43
* You now have a new SSH key, you can click the **Copy Key** button to copy the `authorized_keys` content to the clipboard and save it to the remote server. Alternatively you can copy the public key's path for use as a command line arg, or opening with another program.
44
44
45
45
You can use the key by configuring your SSH client to use nCryptAgent as its SSH agent. For OpenSSH for Windows and PuTTY this should work automatically, as long as those listeners are enabled in the **Config** tab. For WSL2 and Cygwin, you will need to set your `SSH_AUTH_SOCK` environment variable. The commands for doing this are available in the **Config** tab.
46
46
47
47
## Getting Started with WebAuthN Security Keys
48
48
49
49
* From the nCryptAgent main window, select the dropdown arrow in the bottom left and click on **Create new WebAuthN key**
50
-
* Enter a friendly name for the key and choose your key algorithm
50
+
* Enter a friendly name for the key and choose a **Key Algorithm**
51
51
* Click **Save** and you will be prompted to enter your pin and touch your security key
52
52
* Your key is now available for use
53
53
@@ -59,11 +59,11 @@ OpenSSH has a few specific options for `sk-ssh-ed25519@openssh.com` and `sk-ecds
59
59
60
60
### Resident Keys
61
61
62
-
You can create a resident key by selecting the appropriate checkbox when creating the key. Unfortunately the Windows WebAuthN API only supports retrieving credentials in v4 or greater (ie Windows 11 22H2 is required), so support for retrieving credentials is not yet in nCryptAgent.
62
+
You can create a resident key by selecting the appropriate checkbox when creating the key. Unfortunately the Windows WebAuthN API only supports retrieving credentials in v4 or greater (i.e. Windows 11 22H2 is required), so support for retrieving credentials is not yet in nCryptAgent.
63
63
64
64
## Getting Started with Smart Cards
65
65
66
-
If you don't already have a certificate on your smart card, you'll need to create one:
66
+
If you already have a certificate and key on your smart card, you can skip to _Import an existing key_, otherwise you will need to create a certificate and key:
67
67
68
68
### Yubikeys
69
69
@@ -72,23 +72,23 @@ If you don't already have a certificate on your smart card, you'll need to creat
72
72
* Click on **Configure Certificates**
73
73
* Select an empty slot and click **Generate**
74
74
* Click through the wizard to create a self-signed certificate
75
-
* Once you have a certificate saved, follow the Use existing keys section below.
75
+
* Once you have a certificate saved, follow the _Import an existing key_ section below.
76
76
77
77
### TPM Smart Cards
78
78
79
79
* Create a card if you don't have one:
80
80
* Ensure your TPM is enabled in BIOS or UEFI. Different manufacturers name the setting differently.
81
81
* Open a command prompt
82
82
* Run `tpmvscmgr create /name <Friendly_Name> /AdminKey DEFAULT /pin PROMPT /pinpolicy minlen 4 /generate` where `<Friendly_Name>` is a name you choose
83
-
* You can use `certreq` and `certutil` to load a certificate onto the smart card, after which you can `Add existing nCrypt Key` to import your Smart Card credentials into nCryptAgent
83
+
* You can use `certreq` and `certutil` to load a certificate onto the smart card, after which you can **Add existing nCrypt Key** to import your Smart Card credentials into nCryptAgent
84
84
85
-
###Import an existing key
85
+
## Import an existing key
86
86
87
-
If you have a key on your smart card (for instance you have existing credentials on your Yubikey), or have previously created a key using PCP, you can import that key by clicking on the dropdown next to **Create Key** and selecting **Add existing nCrypt key**. Select your key from the dropdown after selecting the provider and smart card reader (if required), and enter a name. Click save and your existing key will be ready for use.
87
+
If you have a key on your smart card (for instance you have existing credentials on your Yubikey), or have previously created a key using PCP, you can import that key by clicking on the dropdown next to **Create Key** and selecting **Add existing nCrypt key**. Select your key from the dropdown after selecting the provider and smart card reader (if required), and enter a name. Click **Save** and your existing key will be ready for use.
88
88
89
89
## Client Configuration
90
90
91
-
Once you have a key added to nCryptAgent you can use it by configuring your SSH client to use nCryptAgent as its SSH agent. For OpenSSH for Windows and PuTTY this should work automatically, as long as those listeners are enabled in the `Config` tab. For WSL2 and Cygwin, you will need to set your `SSH_AUTH_SOCK` environment variable. The commands for doing this are available in the `Config` tab.
91
+
Once you have a key added to nCryptAgent you can use it by configuring your SSH client to use nCryptAgent as its SSH agent. For OpenSSH for Windows and PuTTY this should work automatically, as long as those listeners are enabled in the **Config** tab. For WSL2 and Cygwin, you will need to set your `SSH_AUTH_SOCK` environment variable. The commands for doing this are available in the **Config** tab.
92
92
93
93
* If you are using the Named Pipe listener, ensure the `OpenSSH Authentication Agent` service is stopped in `Services`
94
94
* If you are using the Pageant listener, ensure pageant is not running
@@ -116,7 +116,7 @@ I'll get around to making a proper build script at some point...
116
116
## FAQ
117
117
118
118
### I'd REALLY like to use a non-hardware key
119
-
If you simply MUST have a software backed key you can open the configuration file at `%AppData%\nCryptAgent\config.json` and add a key with `providerName: "Microsoft Software Key Storage Provider"` and set the `containerName` to an existing key. You can get a list of existing keys by running `certutil -key -user -csp KSP` in a command prompt window.
119
+
If you simply MUST have a software key you can open the configuration file at `%AppData%\nCryptAgent\config.json` and add a key with `providerName: "Microsoft Software Key Storage Provider"` and set the `containerName` to an existing key. You can get a list of existing keys by running `certutil -key -user -csp KSP` in a command prompt window.
120
120
121
121
### The nCrypt `containerName` lists a location on my local filesystem, what gives?
122
122
The `Platform Crypto Provider` does not actually store the complete key in the TPM, instead it stores a file for loading into the TPM when signing operations are required. The files are specific to each TPM so your key is still non-exportable. [@ElMostafaIdrassi](https://github.com/ElMostafaIdrassi/pcpcrypto#general-trivia-about-pcp-tpm-keys) has written a nice explanation of it if you'd like more detail.
0 commit comments