SSH Key Management
Introduction
FirmwareCI provides organization-level SSH key management to securely authenticate to target devices during test execution. Instead of using passwords or managing keys manually, you can upload SSH keys through the web interface or API, and they will be automatically available to all tests in your organization.
Key Concepts
Organization Keys
SSH keys are stored at the organization level, meaning all members of your organization can use them in their tests. When you upload a key, it becomes available to all workflows within your organization.
Auto-Discovery
When SSH authentication is not explicitly configured in your test file, FirmwareCI automatically discovers and tries all available SSH keys for your organization. This means you can often omit the identity_file parameter entirely.
Default System Keys
FirmwareCI administrators can configure a default SSH key at the instance level. This key is automatically available to all organizations and can be referenced using [[ssh-keys.default]].
Managing SSH Keys
SSH keys are managed through the FirmwareCI web interface. Go to Settings → SSH Keys to add, generate, or manage your organization’s SSH keys.
You can either:
- Upload existing keys: Upload your own SSH key files (OpenSSH format, unencrypted)
- Generate new keys: Create new SSH key pairs directly on the website
All SSH keys are organization-wide and automatically available to all tests in your organization. Supported key types: RSA, Ed25519, ECDSA.
Using SSH Keys in Tests
Template Syntax
SSH keys are referenced in test files using the template syntax: [[ssh-keys.{name}]]
Available templates:
[[ssh-keys.deployment_key]]- Path to private key (default)[[ssh-keys.deployment_key.private]]- Explicit path to private key[[ssh-keys.deployment_key.public]]- Path to public key[[ssh-keys.default]]- Default system key (if configured)
How auto-discovery works:
- All organization SSH keys are automatically mounted into the test container at
/tmp/ssh-keys/{key_name}/ - The SSH transport scans for all
private_keyfiles in subdirectories - Valid keys are tried in sequence until one succeeds
- If a default system key exists, it’s also included
Deploying Public Keys to Target Devices
After adding an SSH key to FirmwareCI, you need to deploy the public key to your target devices. Here are common methods:
Method 1: Manual Deployment
Get the public key from the FirmwareCI web interface:
- Go to Settings → SSH Keys
- Click on your SSH key
- Copy the displayed public key
Add it to the target device’s
~/.ssh/authorized_keys:
Method 2: Firmware/Image Embedding
For devices you provision from scratch, embed the public key in your firmware binary or base system image so it’s available immediately after boot. See Test Images for further explanation on our provided testing base-image.
See Also
- Templating and Variables Reference - Complete template syntax guide
- Test Images - FirmwareCI base images with SSH key examples