SSH authentication lets you connect to AllSpice Hub without entering your username and password each time. Instead of passwords, SSH uses a pair of cryptographic keys: a private key that stays on your machine, and a public key that you upload to AllSpice Hub.
This guide walks you through the full process from key generation to verification.
Prerequisites
- An AllSpice Hub account at hub.allspice.io
- Git for Windows installed (includes Git Bash) — or any terminal on macOS/Linux
- OpenSSH installed (included with Git for Windows and macOS by default.
Step 1: Generate an SSH Key Pair
Already have a key? Check for ~/.ssh/id_ed25519 and ~/.ssh/id_ed25519.pub. If both exist, skip to Step 2.
1a. Open a Terminal
On Windows, open Git Bash (right-click any folder and select "Git Bash Here"). On macOS or Linux, open your Terminal.
1b. Run the Key Generation Command
Replace the email address with the one associated with your AllSpice Hub account:
ssh-keygen -t ed25519 -C "your_email@example.com"Why Ed25519? It's faster and more secure than the older RSA format, and is the recommended key type for AllSpice Hub.
When prompted for a file location, press Enter to accept the default:
Enter a file in which to save the key (/home/you/.ssh/id_ed25519): [Press Enter]You'll then be asked to set a passphrase. A passphrase protects your private key if your machine is ever compromised. You can leave it empty, but a passphrase is recommended:
Enter passphrase (empty for no passphrase): [type your passphrase]
Enter same passphrase again: [confirm passphrase]c. Confirm the Keys Were Created
Two files will now exist in your ~/.ssh/ folder:
id_ed25519— your private key. Never share this file with anyone.id_ed25519.pub— your public key. This is what you upload to AllSpice Hub.
Verify they exist:
ls ~/.sshStep 2: Copy Your Public Key
Copy the contents of your public key to your clipboard.
On Windows (Git Bash):
cat ~/.ssh/id_ed25519.pub | clipOn Linux:
cat ~/.ssh/id_ed25519.pub | xclip -selection clipboardAlternatively, open ~/.ssh/id_ed25519.pub in any text editor and copy the entire contents manually.
Step 3: Add the Key to AllSpice Hub
- Log into your hub.allspice.io account and navigate to https://hub.allspice.io/<user>/settings/keys
- Click on Manage SSH Keys → Add Key.
- In the dialog:
- Give your key a recognizable Name (e.g., "Work Laptop" or "Home Desktop").
- Paste your public key into the Content field.
- Click Add Key.
You should now see your key listed along with its SHA256 fingerprint.

Step 4: Verify Your Key
AllSpice Hub requires you to prove you own the corresponding private key. This is done by signing a one-time token.
- On the SSH Keys settings page, click Verify next to your newly added key.
- The site will generate a unique token and a command to run. Copy the command, it will look like this (your token will be different):

echo -n "94ca2b130aaaa9fe1ca34e2327c5b048c4c1a4608201cc860581b4c62bc670a5" | ssh-keygen -Y sign -n gitea -f ~/.ssh/id_ed25519.pubIf your key is saved in a different location, replace ~/.ssh/id_ed25519.pub with the actual path to your public key file.
- Run the command in your terminal. If you set a passphrase, you'll be prompted to enter it now.
- The output will be a signature block like this — copy the entire block including the header and footer lines:
-----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgdn8sdB2U3ZhiC6ZA2BqpHfv1Nv
...
-----END SSH SIGNATURE------ Paste the signature into the "Armored SSH signature" field in the verification dialog and click Verify.
A successful verification will show a confirmed status next to your key.
Troubleshooting
Verification fails Remove the key from AllSpice Hub, delete ~/.ssh/id_ed25519 and ~/.ssh/id_ed25519.pub from your machine, and start over from Step 1. Take care when copying your public key — no extra spaces or line breaks.
Permission denied (publickey) when cloning/pushing Make sure you're using the SSH clone URL (starting with git@hub.allspice.io:) and not the HTTPS URL.
"Could not open a connection to your authentication agent" Start the SSH agent and add your key:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519Still need help? Reach out at support@allspice.io