Replace permanent SSH keys with short-lived certificates tied to verified identities. Works with standard OpenSSH—no custom clients needed.
{`# Request SSH certificate
$ ssh user@securd.example.com sign
✓ Identity verified
✓ Certificate issued
✓ Valid for 1 hour
# Connect to server
$ ssh user@prod-server-01
Welcome to prod-server-01!
Last login: Mon 10:32 from 192.168.1.100
# Certificate auto-expires
# No key rotation needed`}
Static SSH keys create security risks and operational headaches. Certificates solve both.
{benefit.description}
No custom clients required. Works with standard OpenSSH on servers and user machines.
{step.description}
{step.code}
The only requirement is OpenSSH 5.6+ on both client and server. Works on Linux, macOS, and most Unix systems.
See why organizations are switching from static SSH keys to certificate-based authentication.
| Feature | Static SSH Keys | SSH Certificates |
|---|---|---|
| {row.feature} | {row.static} | {row.cert} |
SSH certificates work for teams of all sizes and across different use cases.
{useCase.description}
Configure your servers to trust the Secuird CA. One configuration change, and all your servers accept certificates.
{`# Trust Secuird CA for user authentication
TrustedUserCAKeys /etc/ssh/securd_user_ca.pub
# (Optional) Use host certificates
HostCertificate /etc/ssh/ssh_host_ed25519_key-cert.pub
TrustedUserCAKeys /etc/ssh/securd_host_ca.pub
# Restart SSH to apply changes
$ systemctl restart sshd`}
One-time setup per server. The script below installs the CA key, configures principal-based access, and reloads SSH — all in a single idempotent run.
In the Secuird dashboard, go to Certificate Authorities and copy the User CA public key from the detail card.
Each server has a local Unix user (e.g. ubuntu, deploy, root)
that SSH sessions connect to. Choose which principal (from your Secuird configuration) should be
allowed to log in as that user.
SSH into the server and run the script below as root. Paste your CA public key, set the Unix user and principal, then execute.
{`#!/usr/bin/env bash
set -euo pipefail
CA_KEY=''
UNIX_USER="ubuntu" # ← change to the server's unix user
PRINCIPAL="" # ← change to the principal for this user
CA_FILE="/etc/ssh/trusted_user_ca"
PRINCIPALS_DIR="/etc/ssh/auth_principals"
SSHD_DROP_IN="/etc/ssh/sshd_config.d/99-ca-auth.conf"
if [[ "$(id -u)" -ne 0 ]]; then
echo "error: must be run as root" >&2
exit 1
fi
install -m 0644 -o root -g root /dev/null "\${CA_FILE}"
echo "\${CA_KEY}" > "\${CA_FILE}"
install -d -m 0755 -o root -g root "\${PRINCIPALS_DIR}"
install -m 0644 -o root -g root /dev/null "\${PRINCIPALS_DIR}/\${UNIX_USER}"
echo "\${PRINCIPAL}" > "\${PRINCIPALS_DIR}/\${UNIX_USER}"
install -d -m 0755 -o root -g root "/etc/ssh/sshd_config.d"
install -m 0600 -o root -g root /dev/null "\${SSHD_DROP_IN}"
cat > "\${SSHD_DROP_IN}" </dev/null || systemctl reload sshd
echo "done — CA trust and principal '\${PRINCIPAL}' configured for '\${UNIX_USER}'"
else
echo "error: sshd configuration test failed — SSH was NOT reloaded" >&2
exit 1
fi`}
The script validates sshd -t before reloading — if you see
"done" at the end, everything is working. To double-check, run:
{`ssh -T user@your-server # should succeed without a password prompt`}
Repeat on every server. Once the CA key is trusted, any user with a valid Secuird-signed certificate for the matching principal can connect — no more distributing individual SSH keys to each server.
Everything you need to manage SSH access at scale.
{feature.description}
Start your free trial today. Set up your first SSH CA in minutes and see the difference certificates make.