Skip to content

Commit 6bf39a2

Browse files
committed
readme changes
1 parent 387bece commit 6bf39a2

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

README.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Use your WebAuthN authenticator as your SSH key with `sk-ssh-ed25519@openssh.com
1818
* Import and use keys stored on smart cards
1919
* Yubikeys
2020
* [Virtual Smart Cards](https://learn.microsoft.com/en-us/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-overview)
21-
* ...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`
2222
* A nice-ish GUI for managing your hardware-backed keys
2323
* Supports multiple SSH Agent listeners:
2424
* OpenSSH for Windows
@@ -34,20 +34,20 @@ Use your WebAuthN authenticator as your SSH key with `sk-ssh-ed25519@openssh.com
3434

3535
* Download and launch the latest release
3636
* 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**
4141
* This can be empty if you wish to be a bit less secure
42-
* Click save
42+
* Click **Save**
4343
* 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.
4444

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

4747
## Getting Started with WebAuthN Security Keys
4848

4949
* 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**
5151
* Click **Save** and you will be prompted to enter your pin and touch your security key
5252
* Your key is now available for use
5353

@@ -59,11 +59,11 @@ OpenSSH has a few specific options for `sk-ssh-ed25519@openssh.com` and `sk-ecds
5959

6060
### Resident Keys
6161

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

6464
## Getting Started with Smart Cards
6565

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:
6767

6868
### Yubikeys
6969

@@ -72,23 +72,23 @@ If you don't already have a certificate on your smart card, you'll need to creat
7272
* Click on **Configure Certificates**
7373
* Select an empty slot and click **Generate**
7474
* 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.
7676

7777
### TPM Smart Cards
7878

7979
* Create a card if you don't have one:
8080
* Ensure your TPM is enabled in BIOS or UEFI. Different manufacturers name the setting differently.
8181
* Open a command prompt
8282
* 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
8484

85-
### Import an existing key
85+
## Import an existing key
8686

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

8989
## Client Configuration
9090

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

9393
* If you are using the Named Pipe listener, ensure the `OpenSSH Authentication Agent` service is stopped in `Services`
9494
* 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...
116116
## FAQ
117117

118118
### 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.
120120

121121
### The nCrypt `containerName` lists a location on my local filesystem, what gives?
122122
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

Comments
 (0)