SSH keys are static credentials that must be distributed and manually removed on each server, while SSH certificates are issued by a trusted certificate authority for a defined user, host, and time period. Certificates improve scalability and revocation because access policy is centralised, but they require upfront CA setup and client authorization controls.
Why This Matters for Security Teams
SSH access looks simple until the environment scales beyond a few servers. Static SSH keys are easy to copy, hard to inventory, and slower to revoke than most teams expect. SSH certificates change the model by binding access to a signed identity, a role, and a time limit, which makes them better suited to centralized control and short-lived access. That difference matters most where server access is tied to compliance, shared admin teams, or automation.
For security teams, the operational question is not just whether a credential works, but whether it can be governed at scale. Static keys often outlive the people, scripts, and incidents that created them. Certificates reduce that drift, but only if the CA trust path, issuance policy, and client enforcement are designed carefully. The NHI Management Group’s research on machine identity management shows why this category is hard to manage: only 38% of organisations have automated certificate lifecycle management in place, and certificate expiry is the leading cause of outages for 45% of organisations in the SailPoint report titled The Critical Gaps in Machine Identity Management report.
In practice, many security teams discover weak SSH governance only after a key has been copied into scripts, image templates, or a departed administrator’s laptop.
How It Works in Practice
SSH keys are asymmetric key pairs. The private key stays with the user, service, or automation account, and the server stores the matching public key. Access is granted if the key is present in
authorized_keys
or an equivalent trust store. This is simple, but the server has no built-in understanding of why the key exists, when it should expire, or who approved it.
SSH certificates add a signing layer. A certificate authority signs a user key or host key and embeds metadata such as principal, validity period, and permitted use. At login, the SSH server validates the certificate against the trusted CA and applies the stated constraints. That creates a central policy point for issuance and revocation, which is especially useful when access must be time-bound or tied to a named workload. Current guidance suggests using short-lived credentials for machine access whenever practical, because expiry becomes a security control rather than a cleanup task.
A practical rollout usually includes:
- A trusted CA for user and host certificates.
- Role-to-principal mapping so certificates reflect job function or workload identity.
- Short TTLs to limit exposure if a certificate is copied or intercepted.
- Automated issuance and revocation, ideally integrated with SSO, PAM, or an identity broker.
- Client and server policy that rejects unsigned or expired access attempts.
This is where SSH certificates align with broader machine identity governance, including the need for inventory, rotation, and lifecycle control described in Ultimate Guide to NHIs and the access-control discipline reflected in the OWASP Non-Human Identity Top 10. These controls tend to break down in legacy fleets that rely on ad hoc admin access, because the server estate is too inconsistent for certificate trust to be enforced everywhere.
Common Variations and Edge Cases
Tighter certificate-based SSH control often increases operational overhead, requiring organisations to balance stronger governance against issuance complexity and CA availability.
Not every environment should replace keys overnight. Small teams may keep static keys for limited break-glass access while using certificates for daily administration. That is a reasonable transitional pattern, but it should be treated as a temporary exception, not the end state. There is no universal standard for certificate TTLs, principal naming, or revocation mechanics yet, so best practice is evolving around internal policy and risk tolerance.
Host certificates and user certificates solve different problems. Host certificates help users trust servers without manually pinning every host key, while user certificates help servers trust the caller. Mixed fleets also create edge cases: older SSH clients may not support the certificate workflow cleanly, and some automation tools assume raw keys rather than signed credentials. In those environments, policy drift is a bigger risk than the cryptography itself.
For server access specifically, the main tradeoff is between convenience and control. Static keys are faster to deploy but harder to govern. SSH certificates are more defensible for enterprises because they centralise trust and shorten access duration, but they only work well when CA issuance, renewal, and emergency access are engineered as part of the access model rather than bolted on afterward. That distinction is often missed until revocation becomes urgent and the team finds that the old keys were never fully removed.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Non-Human Identity Top 10 and CSA MAESTRO address the attack and risk surface, while NIST AI RMF, NIST CSF 2.0 and NIST Zero Trust (SP 800-207) set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP Non-Human Identity Top 10 | NHI-03 | SSH keys and certs are NHI credentials needing rotation and lifecycle control. |
| CSA MAESTRO | MAESTRO covers workload identity and policy for machine-to-machine access. | |
| NIST AI RMF | AI RMF is relevant where automated admin agents request SSH access. | |
| NIST CSF 2.0 | PR.AA-01 | Identity proofing and access control apply to server login credentials. |
| NIST Zero Trust (SP 800-207) | SC-4 | Zero Trust supports replacing implicit trust in static keys with conditional access. |
Use short-lived access material and automate renewal, revocation, and inventory for SSH identities.
Related resources from NHI Mgmt Group
- What is the difference between trusted MCP server access and scope-based authorization?
- What is the difference between OAuth 2.0 client credentials flow and API keys for service-to-service access?
- What is the difference between JIT access and Zero Trust for NHIs?
- What is the difference between SSH keys and SSH certificates for governance?