Skip to content

Subrosa - #636

Open
alexgithublab wants to merge 5 commits into
mainfrom
subrosa
Open

alexgithublab wants to merge 5 commits into
mainfrom
subrosa

Conversation

@alexgithublab

Copy link
Copy Markdown
Collaborator

the name in the index files needs to be changed to something more understandable

@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

The successful documentation build for de975a9 was deployed for preview:

generated by workflow run 39269363917 (attempt 1)

GnuPG with Fedora <fedora-gnupg-configuration>
Change Pins <change-pins>
Additional Decryption Subkeys (ADSK) with GnuPG <adsk>
sub rosa <../../../nitrophone/sub-rosa>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest a more explanatory name such as "Android app sub rosa"

Comment thread source/components/nitrophone/index.rst Outdated
Frequently Asked Questions <faq>
Headwind MDM (HMDM) <hmdm/index>
FIDO2 on Android / NitroPhone <../nitrokeys/features/fido2/nitrophone>
sub rosa <sub-rosa>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here.

.. product-table:: nk3 pro start storage


sub rosa allows you to program a static password onto a hardware security key, which can act as a keyboard when touched.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mention that this is an app.


Simple: no need to memorize multiple complex passwords. No need to carry multiple devices either — you can program a hardware security key with a password, use it, and then program it with a different password whenever needed. Nowadays, hardware security keys come in various form factors: from models small enough to remain in your phone's USB-C port to larger, NFC-enabled keys.

sub rosa can program an OpenPGP key onto your hardware key, allowing you to encrypt, decrypt, cryptographically sign documents, or authenticate to remote servers via SSH. An OpenPGP key acts as your digital identity.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Nitrokey"


For further information or issue/feature proposal, please refer to the source repository `here <https://github.com/naive-HA/subrosa>`__.

Install sub rosa

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Installation"


In the source repository `here <https://github.com/naive-HA/subrosa>`__.

Supported Features

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Features"

:width: 100%


Use Your Security key for SSH Authentication

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Nitrokey"

Comment on lines +169 to +258
When generating a new OpenPGP key with OpenKeychain, select **Change key configuration** and **add an Authentication subkey**.
Then import this OpenPGP key into sub rosa and write it to your security key.

On a clean Debian machine, ensure all required packages are installed:

.. code-block:: bash

sudo apt update
sudo apt install openssh-client gnupg scdaemon pinentry-curses pcscd

Identify where ``pinentry`` is installed:

.. code-block:: bash

which pinentry

The output should look similar to:

.. code-block:: bash

/usr/bin/pinentry

Take note of that path, then configure ``gpg-agent`` to enable SSH support and use that ``pinentry`` binary:

.. code-block:: bash

echo "enable-ssh-support" > ~/.gnupg/gpg-agent.conf
echo "pinentry-program /usr/bin/pinentry" >> ~/.gnupg/gpg-agent.conf

Restart the agent to apply the configuration:

.. code-block:: bash

gpgconf --kill gpg-agent
gpgconf --launch gpg-agent
gpgconf --list-dirs agent-ssh-socket

This should output a path like:

.. code-block:: bash

/run/user/1000/gnupg/S.gpg-agent.ssh

Note this path and add it to your ``~/.ssh/config``:

.. code-block:: bash

echo "Host *" > ~/.ssh/config
echo " IdentityAgent /run/user/1000/gnupg/S.gpg-agent.ssh" >> ~/.ssh/config


.. note::
Be sure to replace ``/run/user/1000/gnupg/S.gpg-agent.ssh`` with the actual path output on your system.

Now query the security key:

.. code-block:: bash

gpg-connect-agent "scd learn --force" /bye

This displays details of the OpenPGP key written to your security key. The output will look similar to:

.. code-block:: bash

S KEYPAIRINFO 5BBF795A5F93498C2FF6C6CD3ABF896302DC9FA0 OPENPGP.1 sc 1782525925 ed25519
S KEYPAIRINFO D1B359A6A77A68B1776ABFA085E65AFA1582E6D6 OPENPGP.2 e 1782525925 cv25519
S KEYPAIRINFO 36F40BE75662CEA929402AAA360A64F448E35ABB OPENPGP.3 a 1782525925 ed25519
OK

To configure SSH to use the authentication key, add its keygrip to ``~/.gnupg/sshcontrol``:

.. code-block:: bash

echo "36F40BE75662CEA929402AAA360A64F448E35ABB" >> ~/.gnupg/sshcontrol
gpgconf --kill gpg-agent
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
ssh-add -L

.. note::
Replace ``36F40BE75662CEA929402AAA360A64F448E35ABB`` with the keygrip of your specific Authentication subkey (the line ending in ``a``).

The ``ssh-add -L`` command should display your public key card identifier, for example:

.. code-block:: bash

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGfZlzyF4mwdtAnUNJVz1TxOkotdHNizIaA56IOepfA/ cardno:000F_D52FD320

Copy this line and add it to ``~/.ssh/authorized_keys`` on your remote server.

When logging into your remote server via SSH, you will be prompted for a PIN. This is the **User PIN** (default: ``123456``), not the Admin PIN (default: ``12345678``).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Numbered steps give a better overview.

reviews

reviews

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants